Possible XSS vulnerability in Action View tag helpers
Published: November 04, 2026
SECURITY IDENTIFIERS
- GHSA: GHSA-68p9-83h6-5wpj
- Vendor Advisory: https://github.com/rails/rails/security/advisories/GHSA-68p9-83h6-5wpj
GEM
FRAMEWORK
SEVERITY
CVSS v3.x: 4.7 (Medium)
PATCHED VERSIONS
~> 8.0.5, >= 8.0.5.2
>= 8.1.4.1
DESCRIPTION
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.
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/9190210606ffe52f92fdc75637f8ff69404f22c8
- https://github.com/rails/rails/commit/f47452533e1f28d847c63181b9d5f8b7243ef9a4
- https://github.com/rails/rails/security/advisories/GHSA-68p9-83h6-5wpj
