Ruby/actionview/7.0.0


Simple, battle-tested conventions and helpers for building web pages.

https://rubygems.org/gems/actionview
MIT

10 Security Vulnerabilities

XSS Vulnerability in Action View tag helpers

Published date: 2022-04-27T22:32:49Z
CVE: CVE-2022-27777
Links:

There is a possible XSS vulnerability in Action View tag helpers. Passing untrusted input as hash keys can lead to a possible XSS vulnerability. This vulnerability has been assigned the CVE identifier CVE-2022-27777.

Versions Affected: ALL Not affected: NONE Fixed Versions: 7.0.2.4, 6.1.5.1, 6.0.4.8, 5.2.7.1

Impact

If untrusted data is passed as the hash key for tag attributes, there is a possibility that the untrusted data may not be properly escaped which can lead to an XSS vulnerability.

Impacted code will look something like this:

check_box_tag('thename', 'thevalue', false, aria: { malicious_input => 'thevalueofaria' })

Where the malicious_input variable contains untrusted data.

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

Escape the untrusted data before using it as a key for tag helper methods.

Affected versions: ["7.0.2.3", "7.0.2.2", "7.0.2.1", "7.0.2", "7.0.1", "7.0.0", "6.1.5", "6.1.4.7", "6.1.4.6", "6.1.4.5", "6.1.4.4", "6.1.4.3", "6.1.4.2", "6.1.4.1", "6.1.4", "6.1.3.2", "6.1.3.1", "6.1.3", "6.1.2.1", "6.1.2", "6.1.1", "6.1.0", "6.0.4.7", "6.0.4.6", "6.0.4.5", "6.0.4.4", "6.0.4.3", "6.0.4.2", "6.0.4.1", "6.0.4", "6.0.3.7", "6.0.3.6", "6.0.3.5", "6.0.3.4", "6.0.3.3", "6.0.3.2", "6.0.3.1", "6.0.3", "6.0.3.rc1", "6.0.2.2", "6.0.2.1", "6.0.2", "6.0.2.rc2", "6.0.2.rc1", "6.0.1", "6.0.1.rc1", "6.0.0", "5.2.7", "5.2.6.3", "5.2.6.2", "5.2.6.1", "5.2.6", "5.2.5", "5.2.4.6", "5.2.4.5", "5.2.4.4", "5.2.4.3", "5.2.4.2", "5.2.4.1", "5.2.4", "5.2.4.rc1", "5.2.3", "5.2.3.rc1", "5.2.2.1", "5.2.2", "5.2.2.rc1", "5.2.1.1", "5.2.1", "5.2.1.rc1", "5.2.0", "5.2.0.rc2", "5.2.0.rc1", "5.2.0.beta2", "5.2.0.beta1", "5.1.7", "5.1.7.rc1", "5.1.6.2", "5.1.6.1", "5.1.6", "5.1.5", "5.1.5.rc1", "5.1.4", "5.1.4.rc1", "5.1.3", "5.1.3.rc3", "5.1.3.rc2", "5.1.3.rc1", "5.1.2", "5.1.2.rc1", "5.1.1", "5.1.0", "5.1.0.rc2", "5.1.0.rc1", "5.1.0.beta1", "5.0.7.2", "5.0.7.1", "5.0.7", "5.0.6", "5.0.6.rc1", "5.0.5", "5.0.5.rc2", "5.0.5.rc1", "5.0.4", "5.0.4.rc1", "5.0.3", "5.0.2", "5.0.2.rc1", "5.0.1", "5.0.1.rc2", "5.0.1.rc1", "5.0.0.1", "5.0.0", "5.0.0.rc2", "5.0.0.rc1", "5.0.0.beta4", "5.0.0.beta3", "5.0.0.beta2", "5.0.0.beta1.1", "5.0.0.beta1", "5.0.0.racecar1", "4.2.11.3", "4.2.11.2", "4.2.11.1", "4.2.11", "4.2.10", "4.2.10.rc1", "4.2.9", "4.2.9.rc2", "4.2.9.rc1", "4.2.8", "4.2.8.rc1", "4.2.7.1", "4.2.7", "4.2.7.rc1", "4.2.6", "4.2.6.rc1", "4.2.5.2", "4.2.5.1", "4.2.5", "4.2.5.rc2", "4.2.5.rc1", "4.2.4", "4.2.4.rc1", "4.2.3", "4.2.3.rc1", "4.2.2", "4.2.1", "4.2.1.rc4", "4.2.1.rc3", "4.2.1.rc2", "4.2.1.rc1", "4.2.0", "4.2.0.rc3", "4.2.0.rc2", "4.2.0.rc1", "4.2.0.beta4", "4.2.0.beta3", "4.2.0.beta2", "4.2.0.beta1", "4.1.16", "4.1.16.rc1", "4.1.15", "4.1.15.rc1", "4.1.14.2", "4.1.14.1", "4.1.14", "4.1.14.rc2", "4.1.14.rc1", "4.1.13", "4.1.13.rc1", "4.1.12", "4.1.12.rc1", "4.1.11", "4.1.10", "4.1.10.rc4", "4.1.10.rc3", "4.1.10.rc2", "4.1.10.rc1", "4.1.9", "4.1.9.rc1", "4.1.8", "4.1.7.1", "4.1.7", "4.1.6", "4.1.6.rc2", "4.1.6.rc1", "4.1.5", "4.1.4", "4.1.3", "4.1.2", "4.1.2.rc3", "4.1.2.rc2", "4.1.2.rc1", "4.1.1", "4.1.0", "4.1.0.rc2", "4.1.0.rc1", "4.1.0.beta2", "4.1.0.beta1"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Rails has a possible XSS vulnerability in its Action View tag helpers

Published date: 2026-03-23T20:51:18Z
CVE: CVE-2026-33168
Links:

Impact

When a blank string is used as an HTML attribute name in Action View tag helpers, the attribute escaping is bypassed, producing malformed HTML. A carefully crafted attribute value could then be misinterpreted by the browser as a separate attribute name, possibly leading to XSS. Applications that allow users to specify custom HTML attributes are affected.

Releases

The fixed releases are available at the normal locations.

Credit

This issue was responsibly reported by Hackerone researcher taise.

Affected versions: ["7.2.3", "7.2.2.2", "7.2.2.1", "7.2.2", "7.2.1.2", "7.2.1.1", "7.2.1", "7.2.0", "7.2.0.rc1", "7.2.0.beta3", "7.2.0.beta2", "7.2.0.beta1", "7.1.6", "7.1.5.2", "7.1.5.1", "7.1.5", "7.1.4.2", "7.1.4.1", "7.1.4", "7.1.3.4", "7.1.3.3", "7.1.3.2", "7.1.3.1", "7.1.3", "7.1.2", "7.1.1", "7.1.0", "7.1.0.rc2", "7.1.0.rc1", "7.1.0.beta1", "7.0.10", "7.0.9", "7.0.8.7", "7.0.8.6", "7.0.8.5", "7.0.8.4", "7.0.8.3", "7.0.8.2", "7.0.8.1", "7.0.8", "7.0.7.2", "7.0.7.1", "7.0.7", "7.0.6", "7.0.5.1", "7.0.5", "7.0.4.3", "7.0.4.2", "7.0.4.1", "7.0.4", "7.0.3.1", "7.0.3", "7.0.2.4", "7.0.2.3", "7.0.2.2", "7.0.2.1", "7.0.2", "7.0.1", "7.0.0", "7.0.0.rc3", "7.0.0.rc2", "7.0.0.rc1", "7.0.0.alpha2", "7.0.0.alpha1", "6.1.7.10", "6.1.7.9", "6.1.7.8", "6.1.7.7", "6.1.7.6", "6.1.7.5", "6.1.7.4", "6.1.7.3", "6.1.7.2", "6.1.7.1", "6.1.7", "6.1.6.1", "6.1.6", "6.1.5.1", "6.1.5", "6.1.4.7", "6.1.4.6", "6.1.4.5", "6.1.4.4", "6.1.4.3", "6.1.4.2", "6.1.4.1", "6.1.4", "6.1.3.2", "6.1.3.1", "6.1.3", "6.1.2.1", "6.1.2", "6.1.1", "6.1.0", "6.1.0.rc2", "6.1.0.rc1", "6.0.6.1", "6.0.6", "6.0.5.1", "6.0.5", "6.0.4.8", "6.0.4.7", "6.0.4.6", "6.0.4.5", "6.0.4.4", "6.0.4.3", "6.0.4.2", "6.0.4.1", "6.0.4", "6.0.3.7", "6.0.3.6", "6.0.3.5", "6.0.3.4", "6.0.3.3", "6.0.3.2", "6.0.3.1", "6.0.3", "6.0.3.rc1", "6.0.2.2", "6.0.2.1", "6.0.2", "6.0.2.rc2", "6.0.2.rc1", "6.0.1", "6.0.1.rc1", "6.0.0", "6.0.0.rc2", "6.0.0.rc1", "6.0.0.beta3", "6.0.0.beta2", "6.0.0.beta1", "5.2.8.1", "5.2.8", "5.2.7.1", "5.2.7", "5.2.6.3", "5.2.6.2", "5.2.6.1", "5.2.6", "5.2.5", "5.2.4.6", "5.2.4.5", "5.2.4.4", "5.2.4.3", "5.2.4.2", "5.2.4.1", "5.2.4", "5.2.4.rc1", "5.2.3", "5.2.3.rc1", "5.2.2.1", "5.2.2", "5.2.2.rc1", "5.2.1.1", "5.2.1", "5.2.1.rc1", "5.2.0", "5.2.0.rc2", "5.2.0.rc1", "5.2.0.beta2", "5.2.0.beta1", "5.1.7", "5.1.7.rc1", "5.1.6.2", "5.1.6.1", "5.1.6", "5.1.5", "5.1.5.rc1", "5.1.4", "5.1.4.rc1", "5.1.3", "5.1.3.rc3", "5.1.3.rc2", "5.1.3.rc1", "5.1.2", "5.1.2.rc1", "5.1.1", "5.1.0", "5.1.0.rc2", "5.1.0.rc1", "5.1.0.beta1", "5.0.7.2", "5.0.7.1", "5.0.7", "5.0.6", "5.0.6.rc1", "5.0.5", "5.0.5.rc2", "5.0.5.rc1", "5.0.4", "5.0.4.rc1", "5.0.3", "5.0.2", "5.0.2.rc1", "5.0.1", "5.0.1.rc2", "5.0.1.rc1", "5.0.0.1", "5.0.0", "5.0.0.rc2", "5.0.0.rc1", "5.0.0.beta4", "5.0.0.beta3", "5.0.0.beta2", "5.0.0.beta1.1", "5.0.0.beta1", "5.0.0.racecar1", "4.2.11.3", "4.2.11.2", "4.2.11.1", "4.2.11", "4.2.10", "4.2.10.rc1", "4.2.9", "4.2.9.rc2", "4.2.9.rc1", "4.2.8", "4.2.8.rc1", "4.2.7.1", "4.2.7", "4.2.7.rc1", "4.2.6", "4.2.6.rc1", "4.2.5.2", "4.2.5.1", "4.2.5", "4.2.5.rc2", "4.2.5.rc1", "4.2.4", "4.2.4.rc1", "4.2.3", "4.2.3.rc1", "4.2.2", "4.2.1", "4.2.1.rc4", "4.2.1.rc3", "4.2.1.rc2", "4.2.1.rc1", "4.2.0", "4.2.0.rc3", "4.2.0.rc2", "4.2.0.rc1", "4.2.0.beta4", "4.2.0.beta3", "4.2.0.beta2", "4.2.0.beta1", "4.1.16", "4.1.16.rc1", "4.1.15", "4.1.15.rc1", "4.1.14.2", "4.1.14.1", "4.1.14", "4.1.14.rc2", "4.1.14.rc1", "4.1.13", "4.1.13.rc1", "4.1.12", "4.1.12.rc1", "4.1.11", "4.1.10", "4.1.10.rc4", "4.1.10.rc3", "4.1.10.rc2", "4.1.10.rc1", "4.1.9", "4.1.9.rc1", "4.1.8", "4.1.7.1", "4.1.7", "4.1.6", "4.1.6.rc2", "4.1.6.rc1", "4.1.5", "4.1.4", "4.1.3", "4.1.2", "4.1.2.rc3", "4.1.2.rc2", "4.1.2.rc1", "4.1.1", "4.1.0", "4.1.0.rc2", "4.1.0.rc1", "4.1.0.beta2", "4.1.0.beta1", "8.0.4", "8.0.3", "8.0.2.1", "8.0.2", "8.0.1", "8.0.0.1", "8.0.0", "8.0.0.rc2", "8.0.0.rc1", "8.0.0.beta1", "8.1.2", "8.1.1", "8.1.0", "8.1.0.rc1", "8.1.0.beta1"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

rails-ujs vulnerable to DOM Based Cross-site Scripting contenteditable HTML Elements

Published date: 2023-06-09T22:41:16Z
CVE: CVE-2023-23913
Links:

NOTE: rails-ujs is part of Rails/actionview since 5.1.0.

There is a potential DOM based cross-site scripting issue in rails-ujs which leverages the Clipboard API to target HTML elements that are assigned the contenteditable attribute. This has the potential to occur when pasting malicious HTML content from the clipboard that includes a data-method, data-remote or data-disable-with attribute.

This vulnerability has been assigned the CVE identifier CVE-2023-23913.

Not affected: < 5.1.0 Versions Affected: >= 5.1.0 Fixed Versions: 6.1.7.3, 7.0.4.3

Impact If the specified malicious HTML clipboard content is provided to a contenteditable element, this could result in the arbitrary execution of javascript on the origin in question.

Releases The FIXED releases are available at the normal locations.

Workarounds We recommend that all users upgrade to one of the FIXED versions. In the meantime, users can attempt to mitigate this vulnerability by removing the contenteditable attribute from elements in pages that rails-ujs will interact with.

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.

  • rails-ujs-data-method-contenteditable-6-1.patch - Patch for 6.1 series
  • rails-ujs-data-method-contenteditable-7-0.patch - Patch for 7.0 series

Please note that only the 7.0.Z and 6.1.Z series are supported at present, and 6.0.Z for severe vulnerabilities.

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 We would like to thank ryotak 15 for reporting this!

  • rails-ujs-data-method-contenteditable-6-1.patch (8.5 KB)
  • rails-ujs-data-method-contenteditable-7-0.patch (8.5 KB)
  • rails-ujs-data-method-contenteditable-main.patch (8.9 KB)

Affected versions: ["7.0.4.2", "7.0.4.1", "7.0.4", "7.0.3.1", "7.0.3", "7.0.2.4", "7.0.2.3", "7.0.2.2", "7.0.2.1", "7.0.2", "7.0.1", "7.0.0", "6.1.7.2", "6.1.7.1", "6.1.7", "6.1.6.1", "6.1.6", "6.1.5.1", "6.1.5", "6.1.4.7", "6.1.4.6", "6.1.4.5", "6.1.4.4", "6.1.4.3", "6.1.4.2", "6.1.4.1", "6.1.4", "6.1.3.2", "6.1.3.1", "6.1.3", "6.1.2.1", "6.1.2", "6.1.1", "6.1.0", "6.1.0.rc2", "6.1.0.rc1", "6.0.6.1", "6.0.6", "6.0.5.1", "6.0.5", "6.0.4.8", "6.0.4.7", "6.0.4.6", "6.0.4.5", "6.0.4.4", "6.0.4.3", "6.0.4.2", "6.0.4.1", "6.0.4", "6.0.3.7", "6.0.3.6", "6.0.3.5", "6.0.3.4", "6.0.3.3", "6.0.3.2", "6.0.3.1", "6.0.3", "6.0.3.rc1", "6.0.2.2", "6.0.2.1", "6.0.2", "6.0.2.rc2", "6.0.2.rc1", "6.0.1", "6.0.1.rc1", "6.0.0", "6.0.0.rc2", "6.0.0.rc1", "6.0.0.beta3", "6.0.0.beta2", "6.0.0.beta1", "5.2.8.1", "5.2.8", "5.2.7.1", "5.2.7", "5.2.6.3", "5.2.6.2", "5.2.6.1", "5.2.6", "5.2.5", "5.2.4.6", "5.2.4.5", "5.2.4.4", "5.2.4.3", "5.2.4.2", "5.2.4.1", "5.2.4", "5.2.4.rc1", "5.2.3", "5.2.3.rc1", "5.2.2.1", "5.2.2", "5.2.2.rc1", "5.2.1.1", "5.2.1", "5.2.1.rc1", "5.2.0", "5.2.0.rc2", "5.2.0.rc1", "5.2.0.beta2", "5.2.0.beta1", "5.1.7", "5.1.7.rc1", "5.1.6.2", "5.1.6.1", "5.1.6", "5.1.5", "5.1.5.rc1", "5.1.4", "5.1.4.rc1", "5.1.3", "5.1.3.rc3", "5.1.3.rc2", "5.1.3.rc1", "5.1.2", "5.1.2.rc1", "5.1.1", "5.1.0"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Possible XSS Vulnerability in Action View tag helpers

Published date: 2022-04-26
Framework: rails
CVE: 2022-27777
CVSS V3: 6.1
Links:

There is a possible XSS vulnerability in Action View tag helpers. Passing untrusted input as hash keys can lead to a possible XSS vulnerability. This vulnerability has been assigned the CVE identifier CVE-2022-27777.

Versions Affected: ALL Not affected: NONE Fixed Versions: 7.0.2.4, 6.1.5.1, 6.0.4.8, 5.2.7.1

Impact

If untrusted data is passed as the hash key for tag attributes, there is a possibility that the untrusted data may not be properly escaped which can lead to an XSS vulnerability.

Impacted code will look something like this:

check_box_tag('thename', 'thevalue', false, aria: { malicious_input => 'thevalueofaria' })

Where the malicious_input variable contains untrusted data.

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

Escape the untrusted data before using it as a key for tag helper methods.

Affected versions: ["5.1.3.rc3", "4.1.14", "6.0.2.2", "5.0.7.2", "4.2.1", "5.1.0.rc1", "5.0.2.rc1", "4.2.5.rc2", "4.2.0.rc1", "5.1.3", "4.2.10.rc1", "4.2.0.beta3", "6.0.0", "6.0.0.beta1", "5.1.1", "5.0.0.1", "4.2.5.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "5.1.0.rc2", "5.0.0.racecar1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "5.0.7", "5.0.0.beta3", "4.2.1.rc3", "4.1.14.1", "4.1.14.2", "6.0.2.rc1", "5.1.0", "4.2.3.rc1", "4.1.13", "6.0.1.rc1", "5.1.4.rc1", "5.0.2", "4.2.9.rc1", "4.2.1.rc4", "4.2.0", "5.1.0.beta1", "5.0.3", "4.1.16", "5.2.4.3", "5.1.2", "4.2.10", "4.2.7.1", "4.2.6", "4.2.5.rc1", "4.2.0.beta4", "4.1.15.rc1", "6.1.0.rc1", "5.1.7.rc1", "5.0.0.rc2", "4.2.9", "4.2.6.rc1", "4.1.16.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.0.0", "4.2.0.beta1", "5.2.0.rc1", "5.0.5.rc1", "4.2.9.rc2", "4.2.4", "4.2.3", "4.1.10", "4.1.7.1", "4.1.6", "6.0.3.3", "5.2.1", "4.2.7", "4.1.10.rc3", "4.1.2.rc1", "4.1.9", "4.1.9.rc1", "6.0.0.beta2", "4.2.11", "4.1.6.rc2", "6.0.0.rc1", "5.1.6.2", "4.2.11.2", "4.1.14.rc2", "4.1.1", "5.1.4", "5.0.0.beta2", "4.2.8", "4.2.7.rc1", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "5.0.6.rc1", "4.1.14.rc1", "4.1.2", "4.1.0.rc2", "5.0.6", "5.0.0.rc1", "4.2.2", "4.1.0.beta2", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "4.2.5", "4.2.1.rc1", "4.2.0.rc3", "4.1.13.rc1", "4.1.10.rc2", "4.1.2.rc3", "6.0.3", "5.2.2.rc1", "4.1.2.rc2", "5.2.2", "5.1.7", "5.0.4", "5.0.1.rc2", "4.1.15", "4.1.0.beta1", "4.1.6.rc1", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "5.0.5.rc2", "5.0.4.rc1", "4.1.12.rc1", "4.1.8", "4.1.4", "4.1.3", "4.1.10.rc4", "6.0.0.beta3", "5.2.1.rc1", "5.0.7.1", "5.0.0.beta4", "4.2.11.3", "4.2.8.rc1", "4.1.12", "4.1.0.rc1", "4.1.7", "4.1.0", "5.2.4.4", "5.0.5", "5.0.0.beta1.1", "4.2.0.beta2", "5.2.1.1", "5.0.0.beta1", "4.1.5", "5.2.4.1", "5.0.1", "4.2.4.rc1", "4.1.10.rc1", "5.2.3", "5.2.0.beta1", "5.0.1.rc1", "4.2.5.2", "4.2.1.rc2", "4.1.11", "6.0.1", "5.2.4.2", "5.1.3.rc2", "4.2.11.1", "4.2.0.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

DOM Based Cross-site Scripting in rails-ujs for contenteditable HTML Elements

Published date: 2023-03-13
Framework: rails
CVE: 2023-23913
CVSS V3: 7.5
Links:

NOTE: rails-ujs is part of Rails/actionview since 5.1.0.

There is a potential DOM based cross-site scripting issue in rails-ujs which leverages the Clipboard API to target HTML elements that are assigned the contenteditable attribute. This has the potential to occur when pasting malicious HTML content from the clipboard that includes a data-method, data-remote or data-disable-with attribute.

This vulnerability has been assigned the CVE identifier CVE-2023-23913.

Not affected: < 5.1.0 Versions Affected: >= 5.1.0 Fixed Versions: 6.1.7.3, 7.0.4.3

Impact If the specified malicious HTML clipboard content is provided to a contenteditable element, this could result in the arbitrary execution of javascript on the origin in question.

Releases The FIXED releases are available at the normal locations.

Workarounds We recommend that all users upgrade to one of the FIXED versions. In the meantime, users can attempt to mitigate this vulnerability by removing the contenteditable attribute from elements in pages that rails-ujs will interact with.

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.

  • rails-ujs-data-method-contenteditable-6-1.patch - Patch for 6.1 series
  • rails-ujs-data-method-contenteditable-7-0.patch - Patch for 7.0 series

Please note that only the 7.0.Z and 6.1.Z series are supported at present, and 6.0.Z for severe vulnerabilities.

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 We would like to thank ryotak 15 for reporting this!

  • rails-ujs-data-method-contenteditable-6-1.patch (8.5 KB)
  • rails-ujs-data-method-contenteditable-7-0.patch (8.5 KB)
  • rails-ujs-data-method-contenteditable-main.patch (8.9 KB)

Affected versions: ["5.1.3.rc3", "6.0.2.2", "5.1.3", "6.0.0", "6.0.0.beta1", "5.1.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "6.0.2.rc1", "5.1.0", "6.0.1.rc1", "5.1.4.rc1", "5.2.4.3", "5.1.2", "6.1.0.rc1", "5.1.7.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.2.0.rc1", "6.0.3.3", "5.2.1", "6.0.0.beta2", "6.0.0.rc1", "5.1.6.2", "5.1.4", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "6.0.3", "5.2.2.rc1", "5.2.2", "5.1.7", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "6.0.0.beta3", "5.2.1.rc1", "5.2.4.4", "5.2.1.1", "5.2.4.1", "5.2.3", "5.2.0.beta1", "6.0.1", "5.2.4.2", "5.1.3.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7", "5.2.7.1", "6.0.4.8", "6.1.5.1", "7.0.2.4", "7.0.3", "6.1.6", "6.0.5", "5.2.8", "6.1.6.1", "7.0.3.1", "6.0.5.1", "5.2.8.1", "7.0.4", "6.1.7", "6.0.6", "6.0.6.1", "7.0.4.1", "7.0.4.2"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Rails has a possible XSS vulnerability in its Action View tag helpers

Published date: 2026-03-23
Framework: rails
CVE: 2026-33168
Links:

Impact

When a blank string is used as an HTML attribute name in Action View tag helpers, the attribute escaping is bypassed, producing malformed HTML. A carefully crafted attribute value could then be misinterpreted by the browser as a separate attribute name, possibly leading to XSS. Applications that allow users to specify custom HTML attributes are affected.

Releases

The fixed releases are available at the normal locations.

Affected versions: ["5.1.3.rc3", "4.1.14", "6.0.2.2", "5.0.7.2", "4.2.1", "5.1.0.rc1", "5.0.2.rc1", "4.2.5.rc2", "4.2.0.rc1", "5.1.3", "4.2.10.rc1", "4.2.0.beta3", "6.0.0", "6.0.0.beta1", "5.1.1", "5.0.0.1", "4.2.5.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "5.1.0.rc2", "5.0.0.racecar1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "5.0.7", "5.0.0.beta3", "4.2.1.rc3", "4.1.14.1", "4.1.14.2", "6.0.2.rc1", "5.1.0", "4.2.3.rc1", "4.1.13", "6.0.1.rc1", "5.1.4.rc1", "5.0.2", "4.2.9.rc1", "4.2.1.rc4", "4.2.0", "5.1.0.beta1", "5.0.3", "4.1.16", "5.2.4.3", "5.1.2", "4.2.10", "4.2.7.1", "4.2.6", "4.2.5.rc1", "4.2.0.beta4", "4.1.15.rc1", "6.1.0.rc1", "5.1.7.rc1", "5.0.0.rc2", "4.2.9", "4.2.6.rc1", "4.1.16.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.0.0", "4.2.0.beta1", "5.2.0.rc1", "5.0.5.rc1", "4.2.9.rc2", "4.2.4", "4.2.3", "4.1.10", "4.1.7.1", "4.1.6", "6.0.3.3", "5.2.1", "4.2.7", "4.1.10.rc3", "4.1.2.rc1", "4.1.9", "4.1.9.rc1", "6.0.0.beta2", "4.2.11", "4.1.6.rc2", "6.0.0.rc1", "5.1.6.2", "4.2.11.2", "4.1.14.rc2", "4.1.1", "5.1.4", "5.0.0.beta2", "4.2.8", "4.2.7.rc1", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "5.0.6.rc1", "4.1.14.rc1", "4.1.2", "4.1.0.rc2", "5.0.6", "5.0.0.rc1", "4.2.2", "4.1.0.beta2", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "4.2.5", "4.2.1.rc1", "4.2.0.rc3", "4.1.13.rc1", "4.1.10.rc2", "4.1.2.rc3", "6.0.3", "5.2.2.rc1", "4.1.2.rc2", "5.2.2", "5.1.7", "5.0.4", "5.0.1.rc2", "4.1.15", "4.1.0.beta1", "4.1.6.rc1", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "5.0.5.rc2", "5.0.4.rc1", "4.1.12.rc1", "4.1.8", "4.1.4", "4.1.3", "4.1.10.rc4", "6.0.0.beta3", "5.2.1.rc1", "5.0.7.1", "5.0.0.beta4", "4.2.11.3", "4.2.8.rc1", "4.1.12", "4.1.0.rc1", "4.1.7", "4.1.0", "5.2.4.4", "5.0.5", "5.0.0.beta1.1", "4.2.0.beta2", "5.2.1.1", "5.0.0.beta1", "4.1.5", "5.2.4.1", "5.0.1", "4.2.4.rc1", "4.1.10.rc1", "5.2.3", "5.2.0.beta1", "5.0.1.rc1", "4.2.5.2", "4.2.1.rc2", "4.1.11", "6.0.1", "5.2.4.2", "5.1.3.rc2", "4.2.11.1", "4.2.0.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7", "5.2.7.1", "6.0.4.8", "6.1.5.1", "7.0.2.4", "7.0.3", "6.1.6", "6.0.5", "5.2.8", "6.1.6.1", "7.0.3.1", "6.0.5.1", "5.2.8.1", "7.0.4", "6.1.7", "6.0.6", "6.1.7.1", "6.0.6.1", "7.0.4.1", "7.0.4.2", "6.1.7.2", "6.1.7.3", "7.0.4.3", "7.0.5", "6.1.7.4", "7.0.5.1", "7.0.6", "7.0.7", "6.1.7.6", "6.1.7.5", "7.0.7.2", "7.0.7.1", "7.0.8", "7.1.0.beta1", "7.1.0.rc1", "7.1.0.rc2", "7.1.0", "7.1.1", "7.1.2", "7.1.3", "7.1.3.2", "6.1.7.7", "7.1.3.1", "7.0.8.1", "7.0.8.2", "7.1.3.3", "7.0.8.3", "7.2.0.beta1", "7.1.3.4", "6.1.7.8", "7.0.8.4", "7.2.0.beta2", "7.2.0.beta3", "7.2.0.rc1", "7.2.0", "7.2.1", "7.1.4", "8.0.0.beta1", "7.1.4.1", "7.2.1.1", "6.1.7.9", "7.0.8.5", "8.0.0.rc1", "7.2.1.2", "7.0.8.6", "7.1.4.2", "6.1.7.10", "8.0.0.rc2", "7.2.2", "7.1.5", "8.0.0", "7.1.5.1", "7.0.8.7", "8.0.0.1", "7.2.2.1", "8.0.1", "8.0.2", "7.1.5.2", "7.2.2.2", "8.0.2.1", "8.1.0.beta1", "8.0.3", "8.1.0.rc1", "8.1.0", "8.1.1", "7.1.6", "7.0.9", "8.0.4", "7.2.3", "7.0.10", "8.1.2"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Possible XSS vulnerability in Action View text helpers

Published date: 2026-11-04
Framework: rails
CVSS V3: 6.1
Links:

Impact

With the HTML5 sanitizer (Rails::HTML5::Sanitizer, the default vendor on CRuby for applications using load_defaults 7.1 or later), Nokogiri before 1.19.5 serializes < and > unescaped inside attribute values. The Action View text helpers highlight and simple_format sanitize their input and then process the resulting HTML as a string: highlight splits it on tag boundaries to insert matches, and simple_format splits it into paragraphs on blank lines. An unescaped > or a blank line inside an attribute value could cause markup in that value, which the sanitizer left inert, to be emitted as live elements in the helper's html_safe output, possibly leading to XSS. Applications that use the HTML5 sanitizer and pass untrusted text to highlight, or to simple_format with html_options, are affected.

Details

The fixed releases require rails-html-sanitizer 1.7.2 or later, which requires Loofah 2.25.3 and Nokogiri 1.19.5. With these versions, the HTML5 sanitizer escapes < and > in attribute values as &lt; and &gt;, as the HTML4 sanitizer already does. The parsed DOM is unchanged, but code or tests that compare sanitized HTML as a string may see the new serialization.

Workarounds

Upgrade Nokogiri to 1.19.5 or later; the escaping is in its HTML5 serializer, so no Rails upgrade is needed. Alternatively, use the HTML4 sanitizer by setting config.action_view.sanitizer_vendor = Rails::HTML4::Sanitizer.

Releases

The fixed releases are available at the normal locations.

Patches for those who cannot upgrade at once: - 8.1: https://github.com/rails/rails/commit/adc3a32d4abea77ed3aacf6f5fb71cfc005bef73.patch - 8.0: https://github.com/rails/rails/commit/009ea68342d05d02087c04dae7faaa4e4c1def11.patch

Credit

This issue was responsibly reported by HackerOne researcher azaran. This issue was also found by the Anthropic OSS Scanner (ANT-2026-RTK47OH0).

Affected versions: ["5.1.3.rc3", "4.1.14", "6.0.2.2", "5.0.7.2", "4.2.1", "5.1.0.rc1", "5.0.2.rc1", "4.2.5.rc2", "4.2.0.rc1", "5.1.3", "4.2.10.rc1", "4.2.0.beta3", "6.0.0", "6.0.0.beta1", "5.1.1", "5.0.0.1", "4.2.5.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "5.1.0.rc2", "5.0.0.racecar1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "5.0.7", "5.0.0.beta3", "4.2.1.rc3", "4.1.14.1", "4.1.14.2", "6.0.2.rc1", "5.1.0", "4.2.3.rc1", "4.1.13", "6.0.1.rc1", "5.1.4.rc1", "5.0.2", "4.2.9.rc1", "4.2.1.rc4", "4.2.0", "5.1.0.beta1", "5.0.3", "4.1.16", "5.2.4.3", "5.1.2", "4.2.10", "4.2.7.1", "4.2.6", "4.2.5.rc1", "4.2.0.beta4", "4.1.15.rc1", "6.1.0.rc1", "5.1.7.rc1", "5.0.0.rc2", "4.2.9", "4.2.6.rc1", "4.1.16.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.0.0", "4.2.0.beta1", "5.2.0.rc1", "5.0.5.rc1", "4.2.9.rc2", "4.2.4", "4.2.3", "4.1.10", "4.1.7.1", "4.1.6", "6.0.3.3", "5.2.1", "4.2.7", "4.1.10.rc3", "4.1.2.rc1", "4.1.9", "4.1.9.rc1", "6.0.0.beta2", "4.2.11", "4.1.6.rc2", "6.0.0.rc1", "5.1.6.2", "4.2.11.2", "4.1.14.rc2", "4.1.1", "5.1.4", "5.0.0.beta2", "4.2.8", "4.2.7.rc1", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "5.0.6.rc1", "4.1.14.rc1", "4.1.2", "4.1.0.rc2", "5.0.6", "5.0.0.rc1", "4.2.2", "4.1.0.beta2", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "4.2.5", "4.2.1.rc1", "4.2.0.rc3", "4.1.13.rc1", "4.1.10.rc2", "4.1.2.rc3", "6.0.3", "5.2.2.rc1", "4.1.2.rc2", "5.2.2", "5.1.7", "5.0.4", "5.0.1.rc2", "4.1.15", "4.1.0.beta1", "4.1.6.rc1", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "5.0.5.rc2", "5.0.4.rc1", "4.1.12.rc1", "4.1.8", "4.1.4", "4.1.3", "4.1.10.rc4", "6.0.0.beta3", "5.2.1.rc1", "5.0.7.1", "5.0.0.beta4", "4.2.11.3", "4.2.8.rc1", "4.1.12", "4.1.0.rc1", "4.1.7", "4.1.0", "5.2.4.4", "5.0.5", "5.0.0.beta1.1", "4.2.0.beta2", "5.2.1.1", "5.0.0.beta1", "4.1.5", "5.2.4.1", "5.0.1", "4.2.4.rc1", "4.1.10.rc1", "5.2.3", "5.2.0.beta1", "5.0.1.rc1", "4.2.5.2", "4.2.1.rc2", "4.1.11", "6.0.1", "5.2.4.2", "5.1.3.rc2", "4.2.11.1", "4.2.0.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7", "5.2.7.1", "6.0.4.8", "6.1.5.1", "7.0.2.4", "7.0.3", "6.1.6", "6.0.5", "5.2.8", "6.1.6.1", "7.0.3.1", "6.0.5.1", "5.2.8.1", "7.0.4", "6.1.7", "6.0.6", "6.1.7.1", "6.0.6.1", "7.0.4.1", "7.0.4.2", "6.1.7.2", "6.1.7.3", "7.0.4.3", "7.0.5", "6.1.7.4", "7.0.5.1", "7.0.6", "7.0.7", "6.1.7.6", "6.1.7.5", "7.0.7.2", "7.0.7.1", "7.0.8", "7.1.0.beta1", "7.1.0.rc1", "7.1.0.rc2", "7.1.0", "7.1.1", "7.1.2", "7.1.3", "7.1.3.2", "6.1.7.7", "7.1.3.1", "7.0.8.1", "7.0.8.2", "7.1.3.3", "7.0.8.3", "7.2.0.beta1", "7.1.3.4", "6.1.7.8", "7.0.8.4", "7.2.0.beta2", "7.2.0.beta3", "7.2.0.rc1", "7.2.0", "7.2.1", "7.1.4", "8.0.0.beta1", "7.1.4.1", "7.2.1.1", "6.1.7.9", "7.0.8.5", "8.0.0.rc1", "7.2.1.2", "7.0.8.6", "7.1.4.2", "6.1.7.10", "8.0.0.rc2", "7.2.2", "7.1.5", "8.0.0", "7.1.5.1", "7.0.8.7", "8.0.0.1", "7.2.2.1", "8.0.1", "8.0.2", "7.1.5.2", "7.2.2.2", "8.0.2.1", "8.1.0.beta1", "8.0.3", "8.1.0.rc1", "8.1.0", "8.1.1", "7.1.6", "7.0.9", "8.0.4", "7.2.3", "7.0.10", "8.1.2", "8.1.2.1", "8.0.4.1", "7.2.3.1", "8.1.3", "8.0.5", "8.1.3.1", "8.0.5.1", "7.2.3.2", "8.1.4", "7.2.4"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Possible XSS vulnerability in Action View tag helpers

Published date: 2026-11-04
Framework: rails
CVSS V3: 4.7
Links:

Impact

The fix for CVE-2026-33168 skips blank HTML attribute names in Action View tag helpers, but it tests the name before converting it to a string. A Symbol name made only of whitespace, such as :" ", is not blank, because Symbol#blank? is Symbol#empty?, so it reaches the attribute escaping, which emits an attribute with no name and produces malformed HTML. The asset tag helpers, such as image_tag, video_tag and audio_tag, symbolize their options, so a whitespace String name passed to them takes the same path. A carefully crafted attribute value could then be misinterpreted by the browser as a separate attribute name, possibly leading to XSS. Applications that allow users to specify custom HTML attribute names are affected.

Releases

The fixed releases are available at the normal locations.

Patches for those who cannot upgrade at once: - 8.1: https://github.com/rails/rails/commit/9190210606ffe52f92fdc75637f8ff69404f22c8.patch - 8.0: https://github.com/rails/rails/commit/f47452533e1f28d847c63181b9d5f8b7243ef9a4.patch

Credit

This issue was responsibly reported by HackerOne researcher thepo1es.

Affected versions: ["5.1.3.rc3", "4.1.14", "6.0.2.2", "5.0.7.2", "4.2.1", "5.1.0.rc1", "5.0.2.rc1", "4.2.5.rc2", "4.2.0.rc1", "5.1.3", "4.2.10.rc1", "4.2.0.beta3", "6.0.0", "6.0.0.beta1", "5.1.1", "5.0.0.1", "4.2.5.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "5.1.0.rc2", "5.0.0.racecar1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "5.0.7", "5.0.0.beta3", "4.2.1.rc3", "4.1.14.1", "4.1.14.2", "6.0.2.rc1", "5.1.0", "4.2.3.rc1", "4.1.13", "6.0.1.rc1", "5.1.4.rc1", "5.0.2", "4.2.9.rc1", "4.2.1.rc4", "4.2.0", "5.1.0.beta1", "5.0.3", "4.1.16", "5.2.4.3", "5.1.2", "4.2.10", "4.2.7.1", "4.2.6", "4.2.5.rc1", "4.2.0.beta4", "4.1.15.rc1", "6.1.0.rc1", "5.1.7.rc1", "5.0.0.rc2", "4.2.9", "4.2.6.rc1", "4.1.16.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.0.0", "4.2.0.beta1", "5.2.0.rc1", "5.0.5.rc1", "4.2.9.rc2", "4.2.4", "4.2.3", "4.1.10", "4.1.7.1", "4.1.6", "6.0.3.3", "5.2.1", "4.2.7", "4.1.10.rc3", "4.1.2.rc1", "4.1.9", "4.1.9.rc1", "6.0.0.beta2", "4.2.11", "4.1.6.rc2", "6.0.0.rc1", "5.1.6.2", "4.2.11.2", "4.1.14.rc2", "4.1.1", "5.1.4", "5.0.0.beta2", "4.2.8", "4.2.7.rc1", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "5.0.6.rc1", "4.1.14.rc1", "4.1.2", "4.1.0.rc2", "5.0.6", "5.0.0.rc1", "4.2.2", "4.1.0.beta2", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "4.2.5", "4.2.1.rc1", "4.2.0.rc3", "4.1.13.rc1", "4.1.10.rc2", "4.1.2.rc3", "6.0.3", "5.2.2.rc1", "4.1.2.rc2", "5.2.2", "5.1.7", "5.0.4", "5.0.1.rc2", "4.1.15", "4.1.0.beta1", "4.1.6.rc1", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "5.0.5.rc2", "5.0.4.rc1", "4.1.12.rc1", "4.1.8", "4.1.4", "4.1.3", "4.1.10.rc4", "6.0.0.beta3", "5.2.1.rc1", "5.0.7.1", "5.0.0.beta4", "4.2.11.3", "4.2.8.rc1", "4.1.12", "4.1.0.rc1", "4.1.7", "4.1.0", "5.2.4.4", "5.0.5", "5.0.0.beta1.1", "4.2.0.beta2", "5.2.1.1", "5.0.0.beta1", "4.1.5", "5.2.4.1", "5.0.1", "4.2.4.rc1", "4.1.10.rc1", "5.2.3", "5.2.0.beta1", "5.0.1.rc1", "4.2.5.2", "4.2.1.rc2", "4.1.11", "6.0.1", "5.2.4.2", "5.1.3.rc2", "4.2.11.1", "4.2.0.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7", "5.2.7.1", "6.0.4.8", "6.1.5.1", "7.0.2.4", "7.0.3", "6.1.6", "6.0.5", "5.2.8", "6.1.6.1", "7.0.3.1", "6.0.5.1", "5.2.8.1", "7.0.4", "6.1.7", "6.0.6", "6.1.7.1", "6.0.6.1", "7.0.4.1", "7.0.4.2", "6.1.7.2", "6.1.7.3", "7.0.4.3", "7.0.5", "6.1.7.4", "7.0.5.1", "7.0.6", "7.0.7", "6.1.7.6", "6.1.7.5", "7.0.7.2", "7.0.7.1", "7.0.8", "7.1.0.beta1", "7.1.0.rc1", "7.1.0.rc2", "7.1.0", "7.1.1", "7.1.2", "7.1.3", "7.1.3.2", "6.1.7.7", "7.1.3.1", "7.0.8.1", "7.0.8.2", "7.1.3.3", "7.0.8.3", "7.2.0.beta1", "7.1.3.4", "6.1.7.8", "7.0.8.4", "7.2.0.beta2", "7.2.0.beta3", "7.2.0.rc1", "7.2.0", "7.2.1", "7.1.4", "8.0.0.beta1", "7.1.4.1", "7.2.1.1", "6.1.7.9", "7.0.8.5", "8.0.0.rc1", "7.2.1.2", "7.0.8.6", "7.1.4.2", "6.1.7.10", "8.0.0.rc2", "7.2.2", "7.1.5", "8.0.0", "7.1.5.1", "7.0.8.7", "8.0.0.1", "7.2.2.1", "8.0.1", "8.0.2", "7.1.5.2", "7.2.2.2", "8.0.2.1", "8.1.0.beta1", "8.0.3", "8.1.0.rc1", "8.1.0", "8.1.1", "7.1.6", "7.0.9", "8.0.4", "7.2.3", "7.0.10", "8.1.2", "8.1.2.1", "8.0.4.1", "7.2.3.1", "8.1.3", "8.0.5", "8.1.3.1", "8.0.5.1", "7.2.3.2", "8.1.4", "7.2.4"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Possible XSS vulnerability in Action View strip_tags

Published date: 2026-11-04
Framework: rails
CVSS V3: 6.1
Links:

Impact

strip_tags in Action View returns its sanitized output marked html_safe, but the underlying sanitizer encodes only &, < and >, leaving " and ' unencoded. Because ERB does not escape a string marked html_safe, untrusted input passed through strip_tags and rendered inside a quoted HTML attribute value could close the attribute and add new attributes, possibly leading to XSS. Applications that render strip_tags output from untrusted input inside an HTML attribute, for example in a title attribute or a <meta content> tag, are affected. Output rendered as element content is not affected.

Details

strip_tags now encodes " and ' in its output, as well as &, < and >, without double-encoding existing entities. Applications that use strip_tags output outside HTML, such as in a text template or JSON, now see &quot; and &#39; where they saw " and '; CGI.unescapeHTML decodes them. See the Action View CHANGELOG.

Workarounds

Pass strip_tags output to an attribute through a tag helper, which escapes attribute values, for example tag.a(title: strip_tags(user_input)).

Releases

The fixed releases are available at the normal locations.

Patches for those who cannot upgrade at once: - 8.1: https://github.com/rails/rails/commit/568b19cb860322885593e308a7f27aceb779e9d7.patch - 8.0: https://github.com/rails/rails/commit/c3772a10f405f9644125cbb484adfd2aa7a25a59.patch

Credit

This issue was responsibly reported by HackerOne researcher lucasluitjes.

Affected versions: ["5.1.3.rc3", "4.1.14", "6.0.2.2", "5.0.7.2", "4.2.1", "5.1.0.rc1", "5.0.2.rc1", "4.2.5.rc2", "4.2.0.rc1", "5.1.3", "4.2.10.rc1", "4.2.0.beta3", "6.0.0", "6.0.0.beta1", "5.1.1", "5.0.0.1", "4.2.5.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "5.1.0.rc2", "5.0.0.racecar1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "5.0.7", "5.0.0.beta3", "4.2.1.rc3", "4.1.14.1", "4.1.14.2", "6.0.2.rc1", "5.1.0", "4.2.3.rc1", "4.1.13", "6.0.1.rc1", "5.1.4.rc1", "5.0.2", "4.2.9.rc1", "4.2.1.rc4", "4.2.0", "5.1.0.beta1", "5.0.3", "4.1.16", "5.2.4.3", "5.1.2", "4.2.10", "4.2.7.1", "4.2.6", "4.2.5.rc1", "4.2.0.beta4", "4.1.15.rc1", "6.1.0.rc1", "5.1.7.rc1", "5.0.0.rc2", "4.2.9", "4.2.6.rc1", "4.1.16.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.0.0", "4.2.0.beta1", "5.2.0.rc1", "5.0.5.rc1", "4.2.9.rc2", "4.2.4", "4.2.3", "4.1.10", "4.1.7.1", "4.1.6", "6.0.3.3", "5.2.1", "4.2.7", "4.1.10.rc3", "4.1.2.rc1", "4.1.9", "4.1.9.rc1", "6.0.0.beta2", "4.2.11", "4.1.6.rc2", "6.0.0.rc1", "5.1.6.2", "4.2.11.2", "4.1.14.rc2", "4.1.1", "5.1.4", "5.0.0.beta2", "4.2.8", "4.2.7.rc1", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "5.0.6.rc1", "4.1.14.rc1", "4.1.2", "4.1.0.rc2", "5.0.6", "5.0.0.rc1", "4.2.2", "4.1.0.beta2", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "4.2.5", "4.2.1.rc1", "4.2.0.rc3", "4.1.13.rc1", "4.1.10.rc2", "4.1.2.rc3", "6.0.3", "5.2.2.rc1", "4.1.2.rc2", "5.2.2", "5.1.7", "5.0.4", "5.0.1.rc2", "4.1.15", "4.1.0.beta1", "4.1.6.rc1", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "5.0.5.rc2", "5.0.4.rc1", "4.1.12.rc1", "4.1.8", "4.1.4", "4.1.3", "4.1.10.rc4", "6.0.0.beta3", "5.2.1.rc1", "5.0.7.1", "5.0.0.beta4", "4.2.11.3", "4.2.8.rc1", "4.1.12", "4.1.0.rc1", "4.1.7", "4.1.0", "5.2.4.4", "5.0.5", "5.0.0.beta1.1", "4.2.0.beta2", "5.2.1.1", "5.0.0.beta1", "4.1.5", "5.2.4.1", "5.0.1", "4.2.4.rc1", "4.1.10.rc1", "5.2.3", "5.2.0.beta1", "5.0.1.rc1", "4.2.5.2", "4.2.1.rc2", "4.1.11", "6.0.1", "5.2.4.2", "5.1.3.rc2", "4.2.11.1", "4.2.0.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7", "5.2.7.1", "6.0.4.8", "6.1.5.1", "7.0.2.4", "7.0.3", "6.1.6", "6.0.5", "5.2.8", "6.1.6.1", "7.0.3.1", "6.0.5.1", "5.2.8.1", "7.0.4", "6.1.7", "6.0.6", "6.1.7.1", "6.0.6.1", "7.0.4.1", "7.0.4.2", "6.1.7.2", "6.1.7.3", "7.0.4.3", "7.0.5", "6.1.7.4", "7.0.5.1", "7.0.6", "7.0.7", "6.1.7.6", "6.1.7.5", "7.0.7.2", "7.0.7.1", "7.0.8", "7.1.0.beta1", "7.1.0.rc1", "7.1.0.rc2", "7.1.0", "7.1.1", "7.1.2", "7.1.3", "7.1.3.2", "6.1.7.7", "7.1.3.1", "7.0.8.1", "7.0.8.2", "7.1.3.3", "7.0.8.3", "7.2.0.beta1", "7.1.3.4", "6.1.7.8", "7.0.8.4", "7.2.0.beta2", "7.2.0.beta3", "7.2.0.rc1", "7.2.0", "7.2.1", "7.1.4", "8.0.0.beta1", "7.1.4.1", "7.2.1.1", "6.1.7.9", "7.0.8.5", "8.0.0.rc1", "7.2.1.2", "7.0.8.6", "7.1.4.2", "6.1.7.10", "8.0.0.rc2", "7.2.2", "7.1.5", "8.0.0", "7.1.5.1", "7.0.8.7", "8.0.0.1", "7.2.2.1", "8.0.1", "8.0.2", "7.1.5.2", "7.2.2.2", "8.0.2.1", "8.1.0.beta1", "8.0.3", "8.1.0.rc1", "8.1.0", "8.1.1", "7.1.6", "7.0.9", "8.0.4", "7.2.3", "7.0.10", "8.1.2", "8.1.2.1", "8.0.4.1", "7.2.3.1", "8.1.3", "8.0.5", "8.1.3.1", "8.0.5.1", "7.2.3.2", "8.1.4", "7.2.4"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

Possible XSS vulnerability in Action View highlight helper

Published date: 2026-11-04
Framework: rails
CVSS V3: 6.1
Links:

Impact

ActionView::Helpers::TextHelper#highlight substitutes each matched phrase into the :highlighter string without escaping it and returns the result marked HTML-safe. Because sanitizing leaves quote characters in text unescaped, a match substituted into a quoted attribute value of the highlighter, such as the <a href="search?q=\1"> form shown in the method's documentation, could end the attribute value and add attributes to the element, possibly leading to XSS. Applications are affected when they pass a :highlighter that places a placeholder inside an attribute value and highlight text or phrases that a user controls. The default <mark>\1</mark> highlighter and the block form are not affected.

Details

The fixed releases HTML-escape each group substituted into the :highlighter string, so quotes in a match are rendered as &quot; and &#39;. Only the numbered placeholders \0 to \9 are expanded; other String#sub replacement escapes, such as \k<name>, \& and \\, are left as written. A match can no longer begin on the > that closes a preceding tag. Escaping makes a placeholder safe as element content or inside a quoted attribute value, but not in an unquoted attribute value, a URL, JavaScript or CSS context, or an attribute whose value is HTML. See the Action View CHANGELOG for details.

Workarounds

Use a :highlighter that places the matched phrase only in element content, such as the default <mark>\1</mark>.

Releases

The fixed releases are available at the normal locations.

Patches for those who cannot upgrade at once: - 8.1: https://github.com/rails/rails/commit/06938194b4fd59e1d2c8ab4a781f3c1e2b763425.patch - 8.0: https://github.com/rails/rails/commit/c796f6198837479ada13290eb8fa767b5219a58a.patch

Credit

This issue was found by the Anthropic OSS Scanner (ANT-2026-THHUJQVO).

Affected versions: ["5.1.3.rc3", "4.1.14", "6.0.2.2", "5.0.7.2", "4.2.1", "5.1.0.rc1", "5.0.2.rc1", "4.2.5.rc2", "4.2.0.rc1", "5.1.3", "4.2.10.rc1", "4.2.0.beta3", "6.0.0", "6.0.0.beta1", "5.1.1", "5.0.0.1", "4.2.5.1", "6.0.2", "5.2.4", "5.2.0.rc2", "5.1.5.rc1", "5.1.0.rc2", "5.0.0.racecar1", "6.0.3.2", "5.1.5", "5.1.2.rc1", "5.0.7", "5.0.0.beta3", "4.2.1.rc3", "4.1.14.1", "4.1.14.2", "6.0.2.rc1", "5.1.0", "4.2.3.rc1", "4.1.13", "6.0.1.rc1", "5.1.4.rc1", "5.0.2", "4.2.9.rc1", "4.2.1.rc4", "4.2.0", "5.1.0.beta1", "5.0.3", "4.1.16", "5.2.4.3", "5.1.2", "4.2.10", "4.2.7.1", "4.2.6", "4.2.5.rc1", "4.2.0.beta4", "4.1.15.rc1", "6.1.0.rc1", "5.1.7.rc1", "5.0.0.rc2", "4.2.9", "4.2.6.rc1", "4.1.16.rc1", "6.0.3.4", "6.0.3.1", "6.0.3.rc1", "6.0.2.1", "5.2.2.1", "5.0.0", "4.2.0.beta1", "5.2.0.rc1", "5.0.5.rc1", "4.2.9.rc2", "4.2.4", "4.2.3", "4.1.10", "4.1.7.1", "4.1.6", "6.0.3.3", "5.2.1", "4.2.7", "4.1.10.rc3", "4.1.2.rc1", "4.1.9", "4.1.9.rc1", "6.0.0.beta2", "4.2.11", "4.1.6.rc2", "6.0.0.rc1", "5.1.6.2", "4.2.11.2", "4.1.14.rc2", "4.1.1", "5.1.4", "5.0.0.beta2", "4.2.8", "4.2.7.rc1", "6.0.2.rc2", "5.2.0.beta2", "5.1.6", "5.0.6.rc1", "4.1.14.rc1", "4.1.2", "4.1.0.rc2", "5.0.6", "5.0.0.rc1", "4.2.2", "4.1.0.beta2", "6.0.0.rc2", "5.2.4.rc1", "5.2.0", "4.2.5", "4.2.1.rc1", "4.2.0.rc3", "4.1.13.rc1", "4.1.10.rc2", "4.1.2.rc3", "6.0.3", "5.2.2.rc1", "4.1.2.rc2", "5.2.2", "5.1.7", "5.0.4", "5.0.1.rc2", "4.1.15", "4.1.0.beta1", "4.1.6.rc1", "5.2.3.rc1", "5.1.6.1", "5.1.3.rc1", "5.0.5.rc2", "5.0.4.rc1", "4.1.12.rc1", "4.1.8", "4.1.4", "4.1.3", "4.1.10.rc4", "6.0.0.beta3", "5.2.1.rc1", "5.0.7.1", "5.0.0.beta4", "4.2.11.3", "4.2.8.rc1", "4.1.12", "4.1.0.rc1", "4.1.7", "4.1.0", "5.2.4.4", "5.0.5", "5.0.0.beta1.1", "4.2.0.beta2", "5.2.1.1", "5.0.0.beta1", "4.1.5", "5.2.4.1", "5.0.1", "4.2.4.rc1", "4.1.10.rc1", "5.2.3", "5.2.0.beta1", "5.0.1.rc1", "4.2.5.2", "4.2.1.rc2", "4.1.11", "6.0.1", "5.2.4.2", "5.1.3.rc2", "4.2.11.1", "4.2.0.rc2", "6.1.0.rc2", "6.1.0", "6.1.1", "6.1.2", "6.0.3.5", "5.2.4.5", "6.1.2.1", "6.1.3", "6.1.3.1", "6.0.3.6", "5.2.5", "6.1.3.2", "5.2.4.6", "5.2.6", "6.0.3.7", "6.0.4", "6.1.4", "6.0.4.1", "6.1.4.1", "7.0.0.alpha1", "7.0.0.alpha2", "7.0.0.rc1", "6.1.4.2", "6.0.4.3", "6.1.4.3", "7.0.0.rc3", "7.0.0.rc2", "6.0.4.2", "6.0.4.4", "6.1.4.4", "7.0.0", "7.0.1", "7.0.2", "7.0.2.1", "6.1.4.6", "6.0.4.5", "6.1.4.5", "5.2.6.1", "6.0.4.6", "5.2.6.2", "7.0.2.2", "7.0.2.3", "6.0.4.7", "6.1.4.7", "5.2.6.3", "6.1.5", "5.2.7", "5.2.7.1", "6.0.4.8", "6.1.5.1", "7.0.2.4", "7.0.3", "6.1.6", "6.0.5", "5.2.8", "6.1.6.1", "7.0.3.1", "6.0.5.1", "5.2.8.1", "7.0.4", "6.1.7", "6.0.6", "6.1.7.1", "6.0.6.1", "7.0.4.1", "7.0.4.2", "6.1.7.2", "6.1.7.3", "7.0.4.3", "7.0.5", "6.1.7.4", "7.0.5.1", "7.0.6", "7.0.7", "6.1.7.6", "6.1.7.5", "7.0.7.2", "7.0.7.1", "7.0.8", "7.1.0.beta1", "7.1.0.rc1", "7.1.0.rc2", "7.1.0", "7.1.1", "7.1.2", "7.1.3", "7.1.3.2", "6.1.7.7", "7.1.3.1", "7.0.8.1", "7.0.8.2", "7.1.3.3", "7.0.8.3", "7.2.0.beta1", "7.1.3.4", "6.1.7.8", "7.0.8.4", "7.2.0.beta2", "7.2.0.beta3", "7.2.0.rc1", "7.2.0", "7.2.1", "7.1.4", "8.0.0.beta1", "7.1.4.1", "7.2.1.1", "6.1.7.9", "7.0.8.5", "8.0.0.rc1", "7.2.1.2", "7.0.8.6", "7.1.4.2", "6.1.7.10", "8.0.0.rc2", "7.2.2", "7.1.5", "8.0.0", "7.1.5.1", "7.0.8.7", "8.0.0.1", "7.2.2.1", "8.0.1", "8.0.2", "7.1.5.2", "7.2.2.2", "8.0.2.1", "8.1.0.beta1", "8.0.3", "8.1.0.rc1", "8.1.0", "8.1.1", "7.1.6", "7.0.9", "8.0.4", "7.2.3", "7.0.10", "8.1.2", "8.1.2.1", "8.0.4.1", "7.2.3.1", "8.1.3", "8.0.5", "8.1.3.1", "8.0.5.1", "7.2.3.2", "8.1.4", "7.2.4"]
Secure versions: [8.0.5.2, 8.1.4.1]
Recommendation: Update to version 8.1.4.1.

313 Other Versions

Version License Security Released
8.1.4.1 MIT 2026-11-04 - 02:47 1 day
8.1.4 MIT 4 2026-09-24 - 14:21 about 1 month
8.1.3.1 MIT 4 2026-07-29 - 15:01 3 months
8.1.3 MIT 4 2026-03-24 - 20:27 8 months
8.1.2.1 MIT 4 2026-03-23 - 19:45 8 months
8.1.2 MIT 6 2026-01-08 - 20:18 10 months
8.1.1 MIT 6 2025-10-28 - 23:47 about 1 year
8.1.0 MIT 6 2025-10-22 - 00:36 about 1 year
8.1.0.rc1 MIT 6 2025-10-15 - 00:51 about 1 year
8.1.0.beta1 MIT 6 2025-09-04 - 12:30 about 1 year
8.0.5.2 MIT 2026-11-04 - 02:33 1 day
8.0.5.1 MIT 4 2026-07-29 - 15:09 3 months
8.0.5 MIT 4 2026-03-24 - 20:20 8 months
8.0.4.1 MIT 4 2026-03-23 - 19:39 8 months
8.0.4 MIT 6 2025-10-28 - 23:44 about 1 year
8.0.3 MIT 6 2025-09-22 - 22:20 about 1 year
8.0.2.1 MIT 6 2025-08-13 - 20:39 about 1 year
8.0.2 MIT 6 2025-03-12 - 03:08 over 1 year
8.0.1 MIT 6 2024-12-13 - 20:02 almost 2 years
8.0.0.1 MIT 6 2024-12-10 - 21:46 almost 2 years
8.0.0 MIT 6 2024-11-07 - 22:30 almost 2 years
8.0.0.rc2 MIT 6 2024-10-30 - 00:31 about 2 years
8.0.0.rc1 MIT 6 2024-10-19 - 01:43 about 2 years
8.0.0.beta1 MIT 6 2024-09-26 - 15:05 about 2 years
7.2.4 MIT 4 2026-09-24 - 19:08 about 1 month
7.2.3.2 MIT 4 2026-07-29 - 15:08 3 months
7.2.3.1 MIT 4 2026-03-23 - 19:34 8 months
7.2.3 MIT 6 2025-10-28 - 23:25 about 1 year
7.2.2.2 MIT 6 2025-08-13 - 20:34 about 1 year
7.2.2.1 MIT 6 2024-12-10 - 21:42 almost 2 years
7.2.2 MIT 6 2024-10-31 - 01:47 about 2 years
7.2.1.2 MIT 6 2024-10-23 - 22:34 about 2 years
7.2.1.1 MIT 6 2024-10-15 - 20:46 about 2 years
7.2.1 MIT 6 2024-08-22 - 19:45 about 2 years
7.2.0 MIT 6 2024-08-09 - 23:26 about 2 years
7.2.0.rc1 MIT 6 2024-08-06 - 17:01 about 2 years
7.2.0.beta3 MIT 6 2024-07-11 - 15:19 over 2 years
7.2.0.beta2 MIT 6 2024-06-04 - 18:14 over 2 years
7.2.0.beta1 MIT 6 2024-05-29 - 23:38 over 2 years
7.1.6 MIT 6 2025-10-28 - 23:20 about 1 year
7.1.5.2 MIT 6 2025-08-13 - 20:29 about 1 year
7.1.5.1 MIT 6 2024-12-10 - 21:27 almost 2 years
7.1.5 MIT 6 2024-10-31 - 01:34 about 2 years
7.1.4.2 MIT 6 2024-10-23 - 22:28 about 2 years
7.1.4.1 MIT 6 2024-10-15 - 20:40 about 2 years
7.1.4 MIT 6 2024-08-22 - 21:27 about 2 years
7.1.3.4 MIT 6 2024-06-04 - 18:00 over 2 years
7.1.3.3 MIT 6 2024-05-16 - 19:21 over 2 years
7.1.3.2 MIT 6 2024-02-21 - 21:45 over 2 years
7.1.3.1 MIT 6 2024-02-21 - 18:46 over 2 years