CVE-2023-44390 is a medium-severity (CVSS 6.1) Cross-site Scripting (XSS) vulnerability in HtmlSanitizer. A fix is available for HtmlSanitizer — see the affected versions and patch details below.
HtmlSanitizer vulnerable to Cross-site Scripting in Foreign Content
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-2023-44390.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
HtmlSanitizer.NETHtmlSanitizerReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects NuGet packages — download data is not available via public APIs for these ecosystems.
Description
Impact
The vulnerability occurs in configurations where foreign content is allowed, i.e. either svg or math are in the list of allowed elements.
Specifically, the requirements for the vulnerability are:
- Allowing one foreign element:
svg, ormath - Comments or one raw text element:
iframe,noembed,xmp,title,noframes,styleornoscript
Configurations that meet the above requirements plus the following are vulnerable to an additional vulnerability:
- Any HTML integration element:
title,desc,mi,mo,mn,ms,mtext,annotation-xml.
In case an application sanitizes user input with a vulnerable configuration, an attacker could bypass the sanitization and inject arbitrary HTML, including JavaScript code.
Note that in the default configuration the vulnerability is not present.
Patches
The vulnerability has been fixed in versions 8.0.723 and 8.1.722-beta (preview version).
Workarounds
Disallow foreign elements svg and math. This is the case in the default configuration, which is therefore not affected by the vulnerability.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| .NETNuGet | HtmlSanitizer | all versions | 8.0.723dotnet add package HtmlSanitizer --version 8.0.723 |
| .NETNuGet | HtmlSanitizer | ≥ 8.1.0-beta&&< 8.1.722-beta | 8.1.722-betadotnet add package HtmlSanitizer --version 8.1.722-beta |
Affected Products
htmlsanitizerhtmlsanitizer_projectDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for HtmlSanitizer, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update HtmlSanitizer to 8.0.723 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2023-44390 is resolved across your whole dependency graph.
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.
Frequently Asked Questions
Is CVE-2023-44390 in your dependencies?
Find it across NuGet, including transitive dependencies.