Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious Jupyter notebook with XSS payload in Markdown cell
-
DeliveryDeliver notebook via repository, package, or direct share
-
ExploitVictim opens notebook in unpatched PyCharm
-
ExecutionMarkdown cell renders unsanitized JavaScript
-
PersistScript executes in PyCharm notebook viewer context
-
ImpactExfiltrate data or perform actions in scope of IDE session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to open a Jupyter notebook (.ipynb file) containing a malicious payload in a Markdown cell using PyCharm prior to version 2025.3.4. The attacker must be able to deliver the crafted notebook to the victim - through a shared repository, email attachment, dependency package, or collaborative project. The CVSS vector PR:N confirms the attacker needs no authentication or account on any shared system. UI:R confirms victim must actively open and render the notebook in PyCharm. Exploitation is limited to: (1) use of the Jupyter notebook feature within PyCharm specifically, (2) victim running an unpatched PyCharm version prior to 2025.3.4, and (3) successful delivery of the malicious .ipynb file. Passive repository browsing or editing raw JSON of the notebook file without rendering does not trigger the vulnerability. |
| Impact | The CVSS base score of 6.1 (Medium) reflects a network-reachable, low-complexity attack requiring no privileges but demanding user interaction (UI:R), with low confidentiality and integrity impact and a changed scope. Real-world risk is moderate-to-elevated in developer-heavy environments: PyCharm users routinely open Jupyter notebooks sourced from repositories, colleagues, or third-party packages, making the user-interaction barrier easy to overcome socially or via supply chain. No EPSS score was provided in the source data, limiting probabilistic exploitation forecasting. KEV status is absent, and no POC has been identified, suggesting no confirmed widespread exploitation at time of analysis. The primary limiting factor is that exploitation requires victim-side notebook rendering - passive repository browsing without opening notebooks is not sufficient. The changed scope (S:C) elevates residual risk beyond the raw 6.1 score in environments where PyCharm sessions have access to sensitive credentials or local services. |
| Exploit ScenarioDerived | An attacker embeds a malicious JavaScript payload inside a Markdown cell of a Jupyter notebook (e.g., via a public GitHub repository, a shared data science project, or a dependency's example notebook). When a developer opens the notebook in PyCharm prior to 2025.3.4, the unsanitized Markdown is rendered and the script executes within PyCharm's notebook viewer context. Depending on the sandbox, the script could exfiltrate environment variables, local tokens, or session data accessible to the IDE process. No public POC has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 29, 2026
Stored XSS in JetBrains PyCharm's Jupyter notebook Markdown cell renderer allows a remote, unauthenticated attacker to execute arbitrary JavaScript in the context of a victim's PyCharm session by delivering a crafted notebook file. All PyCharm versions prior to 2025.3.4 are affected. The vulnerability carries no KEV listing and no public exploit has been identified at time of analysis, though the low attack complexity and lack of required privileges make opportunistic abuse via shared or repository-hosted notebooks plausible.
RemediationAI
Upgrade JetBrains PyCharm to version 2025.3.4 or later, which contains the vendor-released patch as confirmed by the JetBrains security advisory at https://www.jetbrains.com/privacy-security/issues-fixed/. No workaround version details beyond 2025.3.4 are provided in the source data. As a compensating control prior to patching, avoid opening Jupyter notebooks from untrusted sources - this eliminates the stored payload delivery vector. Teams using PyCharm in collaborative or CI-adjacent workflows should restrict which notebooks are auto-opened and enforce code review of .ipynb files in version control, as Markdown cell content is not typically audited for script injection. Disabling Jupyter notebook preview rendering within PyCharm (if togglable via settings) would mitigate exposure at the cost of losing in-IDE notebook visualization.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
PyCharm renders Jupyter notebook (.ipynb) files natively within its IDE environment, including Markdown cells that support HTML and JavaScript. CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-Site Scripting) indicates that user-controlled content in Markdown cells is not adequately sanitized before being rendered in PyCharm's embedded browser or notebook viewer. The CVSS Scope:Changed attribute confirms that malicious script execution can affect resources or contexts beyond the immediate PyCharm component - consistent with how stored XSS in notebook renderers can reach browser storage, local tokens, or cross-origin contexts depending on the runtime sandbox. The affected CPE is cpe:2.3:a:jetbrains:pycharm:*:*:*:*:*:*:*:*, covering all PyCharm editions (Community and Professional) prior to the patched release.
Know when Pycharm gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Primary rating from Vendor (JetBrains) · only source for this CVE.
CVSS VectorVendor: JetBrains
Lifecycle Timeline
1DescriptionCVE.org
In JetBrains PyCharm before 2025.3.4 stored XSS in Jupyter notebook Markdown cells was possible
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
In JetBrains PyCharm 2019.2.5 and 2019.3 on Windows, Apple Notarization Service credentials were included. Rated high se
Arbitrary code execution in JetBrains PyCharm before 2026.1.4 and 2026.2 lets an attacker who supplies a crafted project
Code execution in JetBrains PyCharm before 2026.2.1 is possible through Jupyter MCP (Model Context Protocol) tools that
In JetBrains PyCharm before 2025.3.2 a DOM-based XSS on Jupyter viewer page was possible [CVSS 8.2 HIGH]
The embedded browser in JetBrains desktop IDEs - IntelliJ IDEA, PyCharm, PhpStorm, RubyMine, WebStorm, GoLand, Rider, CL
In JetBrains PyCharm before 2020.3.4, local code execution was possible because of insufficient checks when getting the
In JetBrains Rider before 2022.1 local code execution via links in ReSharper Quick Documentation was possible. Rated hig
GitHub access token could be exposed to third-party sites in JetBrains IDEs after version 2023.1 and less than: IntelliJ
JetBrains PyCharm before 2019.2 was allocating a buffer of unknown size for one of the connection processes. Rated high
Cross-site scripting in JetBrains PyCharm's Quick Documentation rendering feature (before version 2026.2.1) enables code
In JetBrains PyCharm before 2022.1 exposure of the debugger port to the internal network was possible. Rated low severit
EUVD-2026-33392
GHSA-94rv-v2wh-r9wx
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB