Action View: Possible XSS vulnerability in tag helpers
🔗 CVE IDs covered (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.
🎯 Affected products2
- rubygems/actionview:>= 8.1.0.beta1, < 8.1.4.1
- rubygems/actionview:< 8.0.5.2
🔗 References (8)
- https://github.com/rails/rails/security/advisories/GHSA-68p9-83h6-5wpj
- https://nvd.nist.gov/vuln/detail/CVE-2026-126069
- https://github.com/rails/rails/commit/9190210606ffe52f92fdc75637f8ff69404f22c8
- https://github.com/rails/rails/commit/f47452533e1f28d847c63181b9d5f8b7243ef9a4
- https://github.com/rails/rails/releases/tag/v8.0.5.2
- https://github.com/rails/rails/releases/tag/v8.1.4.1
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/actionview/GHSA-68p9-83h6-5wpj.yml
- https://github.com/advisories/GHSA-68p9-83h6-5wpj