CVE-2026-126209 Loofah allowed_uri? treats javascript: alert(1) as safe

Medium 5.3 Published Updated

Attackers can bypass Loofah's URI sanitizer with encoded colons and scheme letters to enable javascript: links in Rails apps rendering approved values.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Harmful if only installed
No
Needs a specific call
Yes
Fix
Available

What is CVE-2026-126209?

CVE-2026-126209 is a medium-severity cross-site scripting vulnerability in flavorjones loofah, published on 12 Nov 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official description

Loofah is a general library for manipulating and transforming HTML/XML documents and fragments, built on top of Nokogiri. From 2.25.0 until 2.25.3, Loofah::HTML5::Scrub.allowed_uri? strips whitespace and control characters before decoding a semicolon-less numeric character reference, changing where the reference ends and hiding a javascript: or vbscript: scheme that a browser reconstructs. The bypass applies to encoded colons and encoded scheme letters when a stripped character terminates the numeric reference. An application that renders the approved value in href or another browser-interpreted URI attribute can allow cross-site scripting, and Rails::HTML::Sanitizer.allowed_uri? re-exports the affected helper. Loofah's default sanitize() path is not affected because Nokogiri decodes entities before URI evaluation. This issue is fixed in version 2.25.3.

Weakness: CWE-79, CWE-184

Which versions are affected by CVE-2026-126209?

1 open source package ship an affected version, including loofah.

An affected version is only exploitable if your software calls Loofah::HTML5::Scrub.allowed_uri? or Rails::HTML::Sanitizer.allowed_uri?. Many projects that include it are not exposed.

PackageAffectedFixed in
loofah RubyGemsFrom 2.25.02.25.3

How do I fix CVE-2026-126209?

Upgrade loofah to 2.25.3 or later.

Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.

Is CVE-2026-126209 being exploited?

There is no known exploitation of CVE-2026-126209 in the wild and no public exploit code.

Sources

Also known as GHSA-p9wj-w8xq-vjx6.

Is CVE-2026-126209 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free