medium4.3
CVE-2026-59930
Mistune toc / TableOfContents directive: heading IDs use predictable `toc_N` numbering with no slugification, allowing collision with attacker-controlled `id="toc_N"` content
Impact
Mistune is a Python Markdown parser with renderers and plugins. Prior to 3.3.0, the toc plugin and TableOfContents directive generate heading IDs as predictable toc_N values without slugifying the heading text, allowing attacker-controlled id="toc_N" content to collide with generated anchors and redirect same-page navigation, CSS selectors, or JavaScript handlers. This issue is fixed in version 3.3.0.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| pip | mistune | < 3.3.0 | 3.3.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Mistune Project | Mistune | before 3.3.0 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-2hm2-hc3v-44h9
- https://github.com/lepture/mistune/security/advisories/GHSA-2hm2-hc3v-44h9
- https://nvd.nist.gov/vuln/detail/CVE-2026-59930
- https://github.com/lepture/mistune/commit/c4093c4742ed0d10d9332fb8edb455869b7b581b
- https://github.com/lepture/mistune/releases/tag/v3.3.0
- https://github.com/pypa/advisory-database/tree/main/vulns/mistune/PYSEC-2026-2218.yaml