CVE-2026-104250
6.1MediumPublished 13 Oct 2026 · NVD status: Awaiting Analysis · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
- Impact
- Limited impact
- Weakness
- CWE-79, CWE-116
Impact
Attackers can execute malicious JavaScript in a user's browser origin when processed document HTML is viewed. This requires an attacker to submit a crafted document that is subsequently processed and rendered by a user.
Root cause
The HTML generation logic in unstructured fails to escape tags, attributes, and unsafe URL schemes like javascript: links during parsing and serialization.
Affected systems
unstructured prior to 0.24.1
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Fix & remediation
Upgrade the unstructured package to version 0.24.1 or later. If patching immediately is not possible, avoid rendering metadata.text_as_html or elements_to_html() output in web browsers.
$ pip install --upgrade 'unstructured>=0.24.1'AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD 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.
References
- https://github.com/Unstructured-IO/unstructured/commit/cda16b3f2170019be9c6ea5635946fb3eaa2d66f
- https://github.com/Unstructured-IO/unstructured/pull/4394
- https://github.com/Unstructured-IO/unstructured/releases/tag/0.24.1
- https://github.com/Unstructured-IO/unstructured/security/advisories/GHSA-v5mq-3xhg-98m9
- https://github.com/Unstructured-IO/unstructured/security/advisories/GHSA-v5mq-3xhg-98m9