Vulnerability GHSA-wm3x-v3qw-4jh3

High Risk
HIGH RISK
CVSS Score: 7.5
Score Range: 7.0–8.9
High severity vulnerabilities (CVSS 7.0–8.9). Serious vulnerabilities that should be prioritized soon after critical fixes.
17 hours ago
November 12, 2026 at 11:37 PM UTC
Action Pack: Possible Strong Parameters Bypass in Parameters#each_key
0.9.0 - 8.0.5.1 and 8.1.0.beta1 - 8.1.4
0.9.0 - 8.0.5.1 and 8.1.0.beta1 - 8.1.4

Summary

Action Pack: Possible Strong Parameters Bypass in Parameters#each_key

Details

Impact

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.

Details

The fixed releases define Parameters#each_key to yield each key and return the Parameters instance when given a block, as each, each_pair and each_value do, and to return an Enumerator without one. Code that used the return value of each_key as a hash now receives the Parameters instance, which mass assignment rejects unless it is permitted.

Affected applications

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.

Workarounds

Do not use the return value of each_key. Call it for its block only, and pass the permitted Parameters instance to mass assignment.

Releases

The fixed releases are available at the normal locations.

Patches for those who cannot upgrade at once:

Versions affected

  • actionpack < 8.0.5.2
  • actionpack >= 8.1, < 8.1.4.1

Credit

This issue was responsibly reported by HackerOne researcher smlee.

Impacted packages

Timeline

Published
17 hours ago
November 12, 2026 at 11:37 PM UTC
Fixed (8.1.4.1)
9 days ago
November 04, 2026 at 02:47 AM UTC
Last Modified
17 hours ago
November 12, 2026 at 11:45 PM UTC