CVE-2026-104250
unstructured: Stored XSS via unescaped HTML generation
Reported by github_m · Published October 13, 2026
unstructured is fixed in 0.24.1 (PyPI)
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.
Fixed versions
Upgrade to a fixed version or later. Language registries are listed first, then Linux distributions, then vendor products.
| Package | Ecosystem | Fixed in |
|---|---|---|
| unstructured | PyPI | 0.24.1 |
| open-webui | Chainguard | 0.12.3-r2 |
| open-webui | Wolfi | 0.12.3-r2 |
Risk scores
Affected products
| Vendor | Product | Versions |
|---|---|---|
| Unstructured-IO | unstructured | < 0.24.1 |
| PyPI | unstructured | 0 |
| chainguard | open-webui | 0 |
| wolfi | open-webui | 0 |
| Unstructured-IO | unstructured | 0 |
Timeline
- Oct 13, 2026 Coalition ESS Score
- Oct 13, 2026 CVE Published
- Oct 14, 2026 EPSS Score (4 in total, the first dated here)
- Oct 14, 2026 CVE Updated
- Oct 31, 2026 Security Advisory
Query this with the API
The same record, from the CLI:
vulnetix vdb vuln CVE-2026-104250
vulnetix vdb fixes CVE-2026-104250
Or with curl, using the org id and key from your account page:
curl -s -H "Authorization: ApiKey ${VULNETIX_ORG_ID}:${VULNETIX_API_KEY}" \
"https://api.vdb.vulnetix.com/v2/vuln/CVE-2026-104250/fixes/registry"
The Community plan is free and allows 50 queries a day. Get a free API key · API quickstart
References
- https://github.com/Unstructured-IO/unstructured/security/advisories/GHSA-v5mq-3xhg-98m9 x_refsource_CONFIRM
- https://github.com/Unstructured-IO/unstructured/pull/4394 x_refsource_MISC
- https://github.com/Unstructured-IO/unstructured/commit/cda16b3f2170019be9c6ea5635946fb3eaa2d66f x_refsource_MISC
- https://github.com/Unstructured-IO/unstructured/releases/tag/0.24.1 x_refsource_MISC
- https://nvd.nist.gov/vuln/detail/CVE-2026-104250 advisory
- https://github.com/advisories/GHSA-v5mq-3xhg-98m9 advisory