Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPlant executable in user-writable location
-
DeliveryDeliver crafted Run path with trusted prefix
-
ExploitBypass isInTrustedDirectory prefix check
-
ExecutionUser triggers Run command
-
PersistShellExecute resolves traversal
-
ImpactArbitrary code runs as user
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Exploitation requires that the victim be running Notepad++ 8.9.6.1 on Windows and invoke the Run command (the feature that calls ShellExecute() via Command::run()) against a path that the attacker can influence - for example through a crafted session/configuration or a document-supplied command string. The specific precondition is a path that begins with a legitimate trusted-directory prefix but embeds ..\..\ traversal so it passes the non-canonicalizing PathIsPrefix-style check while resolving elsewhere. Limiting factors: the attack is local (AV:L) and demands user interaction (UI:R) to trigger the Run action, the executable must already be placed at the traversal-resolved location, and only the unpatched 8.9.6.1 release is vulnerable - versions at or above 8.9.6.2 canonicalize first and are not affected. |
| Impact | The CVSS 3.1 base score is 7.8 (High) with vector AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - local attack vector, low complexity, no privileges, but mandatory user interaction, yielding full confidentiality/integrity/availability impact in the user's security context. No EPSS score, KEV listing, or POC was provided, so real-world exploitation pressure appears low-to-moderate: this is a UI-gated, local-vector bug rather than a remotely automatable one. The dependency on user interaction (a user must trigger the Run command on attacker-influenced content, e.g., a session/config or document that supplies the malicious path) is the principal limiting factor and argues against treating it as an emergency despite the High score. It is also notable that this is a bypass of an earlier security control (CVE-2026-48800), so environments that believed they were protected by 8.9.6.x are not until 8.9.6.2 - worth prioritizing in patch cycles but not a drop-everything item absent evidence of active exploitation. |
| Exploit ScenarioDerived | An attacker delivers a Notepad++ session, configuration, or document that causes the Run command to receive a path like <trusted-dir>\..\..\Users\Public\evil.exe; the prefix-based isInTrustedDirectory() check accepts it, but ShellExecute() resolves the traversal and launches the attacker's binary in the victim's context. The local, low-complexity vector means execution is reliable once the victim triggers the Run action, though the required user interaction (UI:R) means the attacker must lure the user into that step; no public POC was provided. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
Trusted-directory validation bypass in Notepad++ 8.9.6.1 lets a crafted executable path defeat the isInTrustedDirectory() check added by the prior CVE-2026-48800 fix, allowing arbitrary code execution via the Run command. Because the check uses a prefix match (PathIsPrefix-style) without canonicalizing the path first, a string beginning with a trusted directory but containing ..\..\ traversal resolves to an untrusted location yet still passes validation, causing ShellExecute() to launch an attacker-controlled binary. There is no public exploit identified at time of analysis and the issue is not in CISA KEV; it requires local user interaction and is fixed in 8.9.6.2.
RemediationAI
Vendor-released patch: 8.9.6.2 - upgrade all Windows installations of Notepad++ from 8.9.6.1 to 8.9.6.2 or later, which canonicalizes the path before the trusted-directory comparison. Track the fix via advisory GHSA-p58x-r3c9-x9p6 (https://github.com/notepad-plus-plus/notepad-plus-plus/security/advisories/GHSA-p58x-r3c9-x9p6) and commit ea1508855e9c4528f6198ce9d345f13cb759ebf4. Where immediate patching is not possible, avoid opening Notepad++ sessions, project/config files, or documents from untrusted sources and do not invoke the Run command on untrusted content, since exploitation depends on that user action; on managed endpoints, application-allowlisting (e.g., AppLocker/WDAC) that blocks execution of binaries from user-writable or non-standard directories provides a compensating control, with the trade-off that it may interfere with legitimate Run-command workflows that launch helper tools from non-standard paths.
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
The flaw lives in Command::run() in RunDlg.cpp, which implements the editor's user-facing Run feature that hands a command string to the Windows ShellExecute() API. CVE-2026-48800 introduced isInTrustedDirectory() to confine launched executables to known-safe directories, but the implementation performs a lexical prefix comparison against the trusted-directory string instead of first resolving the path to its canonical form (e.g., via GetFullPathName/PathCanonicalize). This is a classic CWE-42 (path-equivalence) / path-traversal weakness: tokens such as ..\..\ embedded after a legitimate trusted prefix survive the textual check but are collapsed by the filesystem at execution time, so the security gate and the actual target diverge. CPE cpe:2.3:a:notepad-plus-plus:notepad-plus-plus identifies the affected Windows source-code editor; the patch commit also pulls in an unrelated hmac/bcrypt build change, but the security-relevant fix is the canonicalization-before-comparison logic in the Run path.
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 Run-command trigger with no privileges but mandatory user interaction; successful code execution in the user's context yields full C/I/A impact, matching AV:L/PR:N/UI:R.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Notepad++ is a free and open-source source code editor. In v8.9.6.1, isInTrustedDirectory() does NOT canonicalize the path before checking. It uses a prefix-based check (PathIsPrefix() or equivalent) that matches paths starting with trusted directory strings. A path traversal using ..\..\ after a trusted directory prefix passes the check while resolving to an untrusted location. The CVE-2026-48800 patch adds isInTrustedDirectory() validation in Command::run() (RunDlg.cpp) before calling ShellExecute(). This function checks whether the resolved executable path is under a trusted directory. This vulnerability is fixed in 8.9.6.2.
Executive ViewAI
Notepad++ 8.9.6.1 contains a critical path validation bypass in its Run command allowing arbitrary code execution through directory traversal; all users face direct compromise and data theft risks. Patch 8.9.6.2 is available and immediate deployment is required.
Apply vendor patch (version 8.9.6.2). Interim mitigations: disable the Run command feature via application configuration or policy; restrict Notepad++ usage to administrative accounts with elevated privileges; enable endpoint monitoring and logging for process execution originating from Notepad++.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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-39903
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB