{"id":"CVE-2026-126079","aliases":["GHSA-2p2f-4rq4-gjwc"],"url":"https://o3.security/vulnerability/CVE-2026-126079","summary":"Action View: Possible XSS vulnerability in Action View text helpers","details":"### Impact\nWith 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.\n\n### Details\nThe 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.\n\n### Workarounds\nUpgrade 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`.\n\n### Releases\nThe fixed releases are available at the normal locations.\n\nPatches for those who cannot upgrade at once:\n- 8.1: https://github.com/rails/rails/commit/adc3a32d4abea77ed3aacf6f5fb71cfc005bef73.patch\n- 8.0: https://github.com/rails/rails/commit/009ea68342d05d02087c04dae7faaa4e4c1def11.patch\n\n### Credit\nThis issue was responsibly reported by HackerOne researcher [azaran](https://hackerone.com/azaran).\nThis issue was also found by the Anthropic OSS Scanner (ANT-2026-RTK47OH0).","published":"2026-11-10T21:02:30.667Z","modified":"2026-11-12T02:48:33.095101234Z","cvss":{"score":6.1,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"RubyGems","name":"actionview","fixedVersion":"8.1.4.1"},{"ecosystem":"RubyGems","name":"actionview","fixedVersion":"8.0.5.2"}],"fix":{"url":"http://github.com/rails/rails/commit/adc3a32d4abea77ed3aacf6f5fb71cfc005bef73","label":"rails/rails@adc3a32"},"references":[{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v8.0.5.2"},{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v8.1.4.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/126xxx/CVE-2026-126079.json"},{"type":"ADVISORY","url":"https://github.com/rails/rails/security/advisories/GHSA-2p2f-4rq4-gjwc"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126079"},{"type":"FIX","url":"http://github.com/rails/rails/commit/adc3a32d4abea77ed3aacf6f5fb71cfc005bef73"},{"type":"FIX","url":"https://github.com/rails/rails/commit/009ea68342d05d02087c04dae7faaa4e4c1def11"},{"type":"WEB","url":"https://github.com/rails/rails/commit/adc3a32d4abea77ed3aacf6f5fb71cfc005bef73"},{"type":"PACKAGE","url":"https://github.com/rails/rails"},{"type":"WEB","url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/actionview/GHSA-2p2f-4rq4-gjwc.yml"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-11-12T02:48:33.095101234Z"}}