Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local write access to user profile
-
DeliveryInject malicious <Command> into shortcuts.xml
-
ExploitfeedUserCmds loads value into UserCommand._cmd
-
ExecutionVictim clicks crafted Run-menu item
-
PersistShellExecute runs attacker binary
-
ImpactCode execution and persistence as user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: 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 (1) the attacker to write to the victim's shortcuts.xml configuration file and inject a crafted <Command> value inside <UserDefinedCommands>, and (2) the victim to subsequently click the malicious entry in Notepad++'s Run menu (UI:R). Limiting factors: the attack vector is local (AV:L) - there is no remote or network trigger; it depends on first gaining filesystem write access to the user's Notepad++ config, and on the victim interacting with the planted menu item; it affects only Windows installations of Notepad++ prior to 8.9.6.1. Not exploitable against an unmodified configuration or without that initial local write access. |
| Impact | The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, 7.8 High) accurately frames this as a local, low-complexity issue requiring victim interaction (clicking the Run-menu entry) but yielding full confidentiality, integrity, and availability impact via arbitrary code execution in the user's context. The practical prerequisite - the ability to write to the victim's shortcuts.xml - is not captured by PR:N: an attacker already needs local filesystem write access to that profile or another tampering channel, so this is realistically a privilege-persistence / post-compromise primitive rather than an initial remote-access bug. No EPSS score, SSVC decision, KEV listing, or public POC was provided, and there is no public exploit identified at time of analysis, so exploitation is currently theoretical. Net assessment: a legitimate priority for endpoints where untrusted code or other users can modify Notepad++ config files, but lower urgency than the raw 7.8 suggests for typical single-user workstations because it is not remotely or autonomously exploitable. |
| Exploit ScenarioDerived | An attacker with local write access to a user's Notepad++ profile (for example via prior low-privilege access, a shared workstation, or a malicious installer) edits shortcuts.xml to add a <Command> entry whose text is a path to a malicious executable, labeled as a benign-looking Run-menu item. The next time the victim opens that Run-menu entry, ShellExecute launches the attacker's binary in the victim's context. No public POC is referenced, but the low attack complexity makes weaponization straightforward once file-write access is obtained. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
Local OS command injection in Notepad++ before 8.9.6.1 lets an attacker who can write to a user's shortcuts.xml inject an arbitrary executable path into a <Command> entry under <UserDefinedCommands>, which feedUserCmds() loads into UserCommand._cmd with no validation and later passes straight to ShellExecute when the victim clicks the corresponding Run-menu item. Because the malicious entry renders as an ordinary Run-menu item, it doubles as a stealthy persistence mechanism that executes attacker-chosen binaries in the victim's user context. There is no public exploit identified at time of analysis and the flaw is not listed in CISA KEV, but the fix is confirmed in release 8.9.6.1.
RemediationAI
Upgrade to Notepad++ 8.9.6.1 or later, which is the vendor-released patch (8.9.6.1) that adds path and trust validation before ShellExecute (commit 6b3dc52). Reference the advisory GHSA-3x3f-3j39-pj3v for details. If immediate patching is not possible, treat shortcuts.xml as a sensitive file: restrict NTFS write permissions on each user's %AppData%\Notepad++\shortcuts.xml (and the installation-directory copy) so only the owning user/administrators can modify it, audit the <UserDefinedCommands> section for unexpected <Command> entries pointing at non-absolute paths or untrusted locations, and remove any you did not create - the trade-off is that legitimate custom Run commands must be re-added and maintained manually. Monitoring file-integrity on shortcuts.xml is a low-impact compensating control that detects tampering without breaking functionality.
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
Notepad++ is a widely used open-source Windows source-code editor whose Run menu supports user-defined commands persisted in the shortcuts.xml configuration file. At Parameters.cpp:3658, NppXml::value(aNode) reads the text content of each <Command> tag inside <UserDefinedCommands> and stores it verbatim in UserCommand._cmd. When the menu item is invoked, NppCommands.cpp:4264 builds a Command object via string2wstring(ucmd.getCmd()) and calls run(), which reaches ShellExecute at RunDlg.cpp:221 using the stored string as the executable path. The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command): configuration-sourced data is treated as a trusted command line with no path validation, allowlisting, or trust-location check, so any value placed in that XML field is executed. The fix commit (6b3dc52) adds runtime security checks - rejecting non-absolute paths, missing files, and untrusted/unsafe-URL targets, and warning on executables from untrusted locations.
Know when Notepad Plus Plus 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:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Local config-file injection executed only after the victim clicks the menu item gives AV:L/UI:R; arbitrary code runs as the user with full C/I/A impact; no app privileges are required to author the XML, so PR:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Notepad++ is a free and open-source source code editor. Prior to 8.9.6.1, the <Command> tag text content inside <UserDefinedCommands> in shortcuts.xml is read by NppXml::value(aNode) (Parameters.cpp:3658) in the feedUserCmds() function and stored in UserCommand._cmd without any validation. When the user clicks the corresponding entry in the Run menu, NppCommands.cpp:4264 creates a Command object with string2wstring(ucmd.getCmd()) and calls run(), which invokes ShellExecute (RunDlg.cpp:221) with the attacker-controlled string as the executable path. The injected command appears as a normal menu item in the Run menu, making it a viable persistence mechanism. This vulnerability is fixed in 8.9.6.1.
Executive ViewAI
Notepad++ versions prior to 8.9.6.1 contain a local command injection vulnerability that allows attackers to inject malicious executables into user Run menus, creating a persistent backdoor mechanism that executes in user context. Organizations using Notepad++ across development, analyst, and shared-use workstations are at risk of compromise and malware persistence.
Apply vendor patch.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
More in Notepad Plus Plus
View allNotepad++ versions prior to 8.8.9 contain an update integrity verification vulnerability (CVE-2025-15556) when using the
Loading a crafted Notepad++ plugin that reports more than 30 external lexers can overflow a 30-element stack array insid
Local code execution in Notepad++ before 8.9.6.1 occurs because the <GUIConfig name="commandLineInterpreter"> value in c
Notepad++ installations prior to 8.9.8 crash when a local attacker can control the -settingsDir= command-line argument a
Arbitrary code execution in Notepad++ prior to 8.9.8 on Windows 10 and Windows 11 occurs when the editor's 'Folder as Wo
An Untrusted search path vulnerability in notepad++ 6.5 allows local users to gain escalated privileges through the msim
Notepad++ is a free and open-source source code editor. Rated high severity (CVSS 7.8), this vulnerability is no authent
Notepad++ versions 8.4.1 and before are vulnerable to DLL hijacking where an attacker can replace the vulnerable dll (Ux
SciLexer.dll in Scintilla in Notepad++ (x64) before 7.7 allows remote code execution or denial of service via Unicode ch
Improper signature verification in the Notepad++ updater path allows a locally planted or modified GUP.exe updater binar
Notepad++ versions before 8.9.2 allow local code execution through an unsafe search path vulnerability that permits atta
Notepad++ releases prior to 8.9.8 enforce their shortcuts.xml HMAC integrity check on the Macro menu and keyboard-shortc
EUVD-2026-39904
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB