[CVE-2021-22885] Possible Information Disclosure / Unintended Method Execution in Action Pack

1556 views
Skip to first unread message

Aaron Patterson

unread,
May 5, 2021, 12:39:48 PMMay 5
to ruby-sec...@googlegroups.com, rubyonrail...@googlegroups.com, oss-se...@lists.openwall.com
There is a possible information disclosure / unintended method execution
vulnerability in Action Pack which has been assigned the CVE identifier
CVE-2021-22885.

Versions Affected:  >= 2.0.0.
Not affected:       < 2.0.0.
Fixed Versions:     6.1.3.2, 6.0.3.7, 5.2.4.6, 5.2.6

Impact
------
There is a possible information disclosure / unintended method execution
vulnerability in Action Pack when using the `redirect_to` or `polymorphic_url`
helper with untrusted user input.

Vulnerable code will look like this:

```
redirect_to(params[:some_param])
```

All users running an affected release should either upgrade or use one of the
workarounds immediately.

Releases
--------
The FIXED releases are available at the normal locations.

Workarounds
-----------
To work around this problem, it is recommended to use an allow list for valid
parameters passed from the user.  For example:

```
private def check(param)
  case param
  when "valid"
    param
  else
    "/"
  end
end

def index
  redirect_to(check(params[:some_param]))
end
```

Or force the user input to be cast to a string like this:

```
def index
  redirect_to(params[:some_param].to_s)
end
```

Patches
-------
To aid users who aren't able to upgrade immediately we have provided patches for
the two supported release series. They are in git-am format and consist of a
single changeset.

* 5-2-information-disclosure.patch - Patch for 5.2 series
* 6-0-information-disclosure.patch - Patch for 6.0 series
* 6-1-information-disclosure.patch - Patch for 6.1 series

Please note that only the 5.2, 6.0, and 6.1 series are supported at present. Users
of earlier unsupported releases are advised to upgrade as soon as possible as we
cannot guarantee the continued availability of security fixes for unsupported
releases.

Credits
-------

Thanks to Benoit Côté-Jodoin from Shopify for reporting this.

--
5-2-information-disclosure.patch
6-1-information-disclosure.patch
6-0-information-disclosure.patch
Reply all
Reply to author
Forward
0 new messages