User data access via unsanitized Markdown headings
Published Jan 19, 2024 · Updated May 30, 2025
Stored cross-site scripting in JupyterLab 4.0.0 through 4.0.10 allows remote attackers to access user data through a malicious Markdown file. The table-of-contents getHeadingId path assigns unsanitized Markdown parser output to innerHTML and builds selectors from unescaped heading IDs. Execution requires a user to open the crafted file in Markdown Preview while the table-of-contents extension is enabled, after which attacker-controlled script can issue requests with that user's access.
Summary
What happened
Stored cross-site scripting in JupyterLab 4.0.0 through 4.0.10 allows remote attackers to access user data through a malicious Markdown file. The table-of-contents getHeadingId path assigns unsanitized Markdown parser output to innerHTML and builds selectors from unescaped heading IDs. Execution requires a user to open the crafted file in Markdown Preview while the table-of-contents extension is enabled, after which attacker-controlled script can issue requests with that user's access.
The record
- CVE
- CVE-2024-22420
- Published
- Jan 19, 2024
- Updated
- May 30, 2025
- Vendor
- Project Jupyter
- Product
- JupyterLab
- Classifications
- CWE-79, T1204.002
- Attack vector
- network
- Privileges
- unauthenticated
Timeline
How it unfolded
- Jan 19, 2024CVE publishedPublication date reported by the CVE source.
- May 30, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=>=4.0.0, < 4.0.11
What conditions does exploitation require?
What is affected?
Published CVSS scores
CVSS describes severity. EPSS estimates exploitation probability.
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
No public exploit references are available in this record.
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo