Action Pack is a framework for handling and responding to web requests. Prior to 8.1.4.1 and 8.0.5.2, ActionController::Parameters#each_key delegates to the internal ActiveSupport::HashWithIndifferentAccess that holds the request parameters, so when called with a block it returns that hash instead of the Parameters instance. The hash does not respond to permitted?, so Active Model mass assignment (new, assign_attributes, update) accepts it without raising ActiveModel::ForbiddenAttributesError. An application that passes the return value of each_key to mass assignment could allow a remote, unauthenticated attacker to set attributes that the application does not permit, such as an authorization flag. This is an incomplete fix of CVE-2020-8164, which made each, each_pair and each_value return the Parameters instance but left each_key delegated. An application is affected if it passes the return value of ActionController::Parameters#each_key, called with a block, to mass assignment. Rails itself makes no such call. This issue is fixed in versions 8.1.4.1 and 8.0.5.2.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-915"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/126xxx/CVE-2026-126081.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "8.1"
},
{
"fixed": "8.1.4.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "8.0.5.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "2fc8838300133931e19eed3ea6cee76a7e83f19c"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "8ba746e0a786458c281060823f2ccc5c5f6312ac"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v8.0.5.2",
"range": [
{
"fixed": "235c597b100321b6bd2d62f8df63707f42b25b2d"
}
],
"source": "REFERENCES_TAG"
},
{
"original_tag": "v8.1.4.1",
"range": [
{
"fixed": "3f290b759c8e2ffe7c257951b1255740751355e4"
}
],
"source": "REFERENCES_TAG"
}
]
}