Possible XSS vulnerability in Action View strip_tags
Published: November 04, 2026
SECURITY IDENTIFIERS
- GHSA: GHSA-rq8q-p985-fjq7
- Vendor Advisory: https://github.com/rails/rails/security/advisories/GHSA-rq8q-p985-fjq7
GEM
FRAMEWORK
SEVERITY
CVSS v3.x: 6.1 (Medium)
PATCHED VERSIONS
~> 8.0.5, >= 8.0.5.2
>= 8.1.4.1
DESCRIPTION
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.
RELATED
- https://rubygems.org/gems/actionview/versions/8.1.4.1
- https://github.com/rails/rails/releases/tag/v8.1.4.1
- https://rubygems.org/gems/actionview/versions/8.0.5.2
- https://github.com/rails/rails/releases/tag/v8.0.5.2
- https://github.com/rails/rails/commit/568b19cb860322885593e308a7f27aceb779e9d7
- https://github.com/rails/rails/commit/c3772a10f405f9644125cbb484adfd2aa7a25a59
- https://github.com/rails/rails/security/advisories/GHSA-rq8q-p985-fjq7
