GitHub Advisoryadvisory · RubyGems
GHSA-9822-6m93-xqf4 Rails has possible XSS Vulnerability in Action Controller
MEDIUM
Official page ↗
- Aliases
- CVE-2024-26143
- Ecosystem
- RubyGems
- Packages
- actionpack, rails
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2024-02-27
Affected packages
• RubyGems actionpack: >= 7.0.0, < 7.0.8.1 → fixed in 7.0.8.1
• RubyGems actionpack: >= 7.1.0, < 7.1.3.1 → fixed in 7.1.3.1
• RubyGems rails: >= 7.0.0, < 7.0.8.1 → fixed in 7.0.8.1
• RubyGems rails: >= 7.1.0, < 7.1.3.1 → fixed in 7.1.3.1
Description
Possible XSS Vulnerability in Action Controller
There is a possible XSS vulnerability when using the translation helpers
(`translate`, `t`, etc) in Action Controller. This vulnerability has been
assigned the CVE identifier CVE-2024-26143.
Versions Affected: >= 7.0.0.
Not affected: < 7.0.0
Fixed Versions: 7.1.3.1, 7.0.8.1
Impact
------
Applications using translation methods like `translate`, or `t` on a
controller, with a key ending in "_html", a `:default` key which contains
untrusted user input, and the resulting string is used in a view, may be
susceptible to an XSS vulnerability.
For example, impacted code will look something like this:
```ruby
class ArticlesController < ApplicationController
def show
@message = t("message_html", default: untrusted_input)
# The `show` template displays the contents of `@message`
end
end
```
To reiterate the pre-conditions, applications must:
• Use a translation function from a controller (i.e. _not_ I18n.t, or `t` from
a view)
• Use a key that ends in `_html`
• Use a default value where the default value is untrusted and unescaped input
• Send the text to the victim (whether that's part of a template, or a
`render` call)
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
-----------
There are no feasible workarounds for this issue.
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.
• 7-0-translate-xss.patch - Patch for 7.0 series
• 7-1-translate-xss.patch - Patch for 7.1 series
Credits
-------
Thanks to ooooooo_q for the patch and fix!
Related
Alias · CVE (1)
- CVE-2024-26143 Rails is a web-application framework. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/rails/rails/security/advisories/GHSA-9822-6m93-xqf4 web
- https://nvd.nist.gov/vuln/detail/CVE-2024-26143 advisory
- https://github.com/rails/rails/commit/4c83b331092a79d58e4adffe4be5f250fa5782cc web
- https://github.com/rails/rails/commit/5187a9ef51980ad1b8e81945ebe0462d28f84f9e web
- https://discuss.rubyonrails.org/t/possible-xss-vulnerability-in-action-controller/84947 web
- https://github.com/rails/rails package
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/actionpack/CVE-2024-26143.yml web
- https://security.netapp.com/advisory/ntap-20240510-0004 web