NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
💎 RubyGems
Not in CISA KEV

CVE-2026-33170 — activesupport

Fix: rails/rails@50d732a

CVE-2026-33170 is a Cross-site Scripting (XSS) vulnerability in activesupport. A fix is available for activesupport — see the affected versions and patch details below.

Rails Active Support has a possible XSS vulnerability in SafeBuffer#%

Also known asGHSA-89vf-4333-qx8v
Published
Updated
Affected
3 pkgs
Patched
3 / 3
Exploits
None indexed
Exploitation data as of Nov 7, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-33170.

EPSS Exploitation Probability

via FIRST.org ↗
0.3%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs28th percentile — riskier than 28% of all scored CVEsHighest risk
0.00%0.31%0.62%0.93%0.0%0.3%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

Real-World Exposure

3 pkgs affected
💎activesupport💎activesupport💎activesupport

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects RubyGems packages — download data is not available via public APIs for these ecosystems.

Description

Active Support is a toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, SafeBuffer#% does not propagate the @html_unsafe flag to the newly created buffer. If a SafeBuffer is mutated in place (e.g. via gsub!) and then formatted with % using untrusted arguments, the result incorrectly reports html_safe? == true, bypassing ERB auto-escaping and possibly leading to XSS. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.

Affected Packages

3 total 3 fixed
EcosystemPackageVulnerable rangeFix
💎RubyGemsactivesupport≥ 8.1.0.beta1&&< 8.1.2.18.1.2.1bundle update activesupport --conservative
💎RubyGemsactivesupport≥ 8.0.0.beta1&&< 8.0.4.18.0.4.1bundle update activesupport --conservative
💎RubyGemsactivesupportall versions7.2.3.1bundle update activesupport --conservative

Affected Products

1 product · 3 configurations
Application
railsrubyonrails
≥ 8.1.0 && < 8.1.2.1
range

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for activesupport, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update activesupport to 8.1.2.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-33170 is resolved across your whole dependency graph.

  3. Workarounds

    Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatModerate

This Cross-Site Scripting (XSS) flaw in Active Support bypasses ERB auto-escaping when a SafeBuffer is mutated in place and subsequently formatted with untrusted arguments. Applications like Red Hat Satellite using rubygem-activesupport are vulnerable only if they process user input using this exact mechanism. This…

Workaround published by Red Hat
Restrict Satellite HTTPS (443) access strictly to trusted administrative networks. On the Apache front-end, deploy a Web Application Firewall (WAF) to filter incoming XSS payloads, enforce a strict Content-Security-Policy (CSP) to block unauthorized inline script execution, and apply SameSite flags to session cookies
Source: Red Hat security advisory for CVE-2026-33170 (CC BY 4.0)

Frequently Asked Questions

Active Support is a toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, `SafeBuffer#%` does not propagate the `@html_unsafe` flag to the newly created buffer. If a `SafeBuffer` is mutated in place (e.g. via `gsub!`) and then formatted with `%` using untrusted arguments, the result incorrectly reports `html_safe? == true`, bypassing ERB auto-escaping and possibly leading to XSS. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.
O3 Security · Impact-Aware SCA

Is CVE-2026-33170 in your dependencies?

Find it across RubyGems, including transitive dependencies.

CVE-2026-33170: activesupport XSS — Fixed in 8.1.2.1