CVE-2026-59926: Mistune: XSS via unescaped class option in Admonition directive
In src/mistune/directives/admonition.py, the render_admonition() function concatenates the :class: option directly into the HTML class attribute without escaping (lines 63-68).
This allows attribute injection and XSS even when HTMLRenderer(escape=True) is used.
The directive name parameter is safe (validated against whitelist), but the class option comes from raw user input.
References
- github.com/advisories/GHSA-g97x-gvcm-x72h
- github.com/lepture/mistune/commit/a3cb6e5655308797e8be021d6c7b5bab13cbace2
- github.com/lepture/mistune/releases/tag/v3.2.1
- github.com/lepture/mistune/security/advisories/GHSA-g97x-gvcm-x72h
- github.com/pypa/advisory-database/tree/main/vulns/mistune/PYSEC-2026-2214.yaml
- nvd.nist.gov/vuln/detail/CVE-2026-59926
Code Behaviors & Features
Detect and mitigate CVE-2026-59926 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →