CVE-2026-66829 json
html_sanitize_ex HTML5 scrubber keeps attacker-supplied meta refresh, allowing forced cross-origin redirection
published 3mo ago modified 18d ago also EEF-CVE-2026-66829 , EUVD-2026-54082 , GHSA-2c6f-3j54-xpcr
- cvss
- 6.1
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 47%
- public exploits
- 0
- none known
Summary
URL Redirection to Untrusted Site ('Open Redirect') vulnerability in the HTML5 scrubber in rrrene html_sanitize_ex allows a remote attacker to force visitors of a page to navigate to a site of the attacker's choosing via a <meta http-equiv="refresh"> element in sanitized HTML. HtmlSanitizeEx.html5/1 keeps attacker-supplied <meta> elements in its output. A meta element acts on the whole document rather than on the fragment it was embedded in, so it can also declare document-wide directives such as Content-Security-Policy.
This is not cross-site scripting. Browsers do not navigate a meta refresh to a javascript: URL, so the uppercase JAVASCRIPT: filter bypass yields no script execution and none was demonstrated.
This issue affects html_sanitize_ex: from 0.3.1 before 1.4.5 and from 1.5.0-rc.0 before 1.5.3.
Patch / fix
- hex html_sanitize_ex 1.4.5, 1.5.3
- rrrene html_sanitize_ex 1.4.5, 1.5.3
Is CVE-2026-66829 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3mo ago
Exploit prediction
0.57% chance of exploitation in the next 30 days, higher than 47% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 2.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N |
| CNA | 4.0 | 2.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | html_sanitize_ex | >=0.3.1, <1.4.5 >=1.5.0-rc.0, <1.5.3 |
1.4.5 1.5.3 |
Affected products
- rrrene html_sanitize_ex
Classification
- Weakness
-
- CWE-601 URL Redirection to Untrusted Site
References
-
github.com
/rrrene/html_sanitize_ex/commit/9f7e38be51edc38f132dfe994f37af5cf5e0e76f
patch
-
github.com
/rrrene/html_sanitize_ex/commit/29454dc99513fd9b5b6429ab7b6695ad09889227
patch
-
cna.erlef.org
/cves/CVE-2026-66829.html
related, patch, third-party-advisory, web
-
osv.dev
/vulnerability/EEF-CVE-2026-66829
related, patch, third-party-advisory
-
github.com
/rrrene/html_sanitize_ex/security/advisories/GHSA-2c6f-3j54-xpcr
vendor-advisory, related, broken-link, advisory
-
hex.pm
/packages/html_sanitize_ex
package
Sources
- CVE List CVE-2026-66829
- NVD CVE-2026-66829
- OSV EEF-CVE-2026-66829
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.