CVE-2026-104250 · GHSA-v5mq-3xhg-98m9
unstructured: Stored XSS via unescaped HTML generation
- Risk score
- 43/100
- CVSS
- 6.1 v3.1
- Exploit chance (30 days)
- 0.2%
- Published
- 13 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- The unstructured library provides open-source components for ingesting and pre-processing images and text documents, such as PDFs, HTML, Word docs, and many more. Prior to 0.24.1, partition_html(html_parser_version="v2") and the VLM partitioner can preserve untrusted document tags, attributes, text, and link targets i…
- Affected
- unstructured (pip) <= 0.24.0
- Fix
- Upgrade unstructured to 0.24.1 or later.
- Exploitation
- No known exploitation
Why it is Yellow
- CVSS 6.1 medium
- On your watchlist: PyPI
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| unstructured | pip | <= 0.24.0 | 0.24.1 |
References
- https://github.com/advisories/GHSA-v5mq-3xhg-98m9
- https://github.com/Unstructured-IO/unstructured/security/advisories/GHSA-v5mq-3xhg-98m9
- https://nvd.nist.gov/vuln/detail/CVE-2026-104250
- https://github.com/Unstructured-IO/unstructured/pull/4394
- https://github.com/Unstructured-IO/unstructured/commit/cda16b3f2170019be9c6ea5635946fb3eaa2d66f
- https://github.com/Unstructured-IO/unstructured/releases/tag/0.24.1
- https://github.com/advisories/GHSA-v5mq-3xhg-98m9
Original description
The unstructured library provides open-source components for ingesting and pre-processing images and text documents, such as PDFs, HTML, Word docs, and many more. Prior to 0.24.1, partition_html(html_parser_version="v2") and the VLM partitioner can preserve untrusted document tags, attributes, text, and link targets in metadata.text_as_html, while elements_to_html() emits the result as an HTML document. The to_html() path in unstructured/documents/ontology.py does not escape output or reject unsafe URL schemes, allowing event-handler attributes, attribute breakout markup, and javascript: links to survive parsing. When the generated HTML or text_as_html is rendered in a browser, attacker-controlled script can execute in the viewer's origin, including in document-ingestion workflows where a privileged reviewer opens submitted content. This issue is fixed in version 0.24.1.
Last activity 13 Oct 2026. Patch Forecast updates every hour.