Skip to main content

Notepad++ EUVDEUVD-2026-39903

| CVE-2026-52884 HIGH
Path Equivalence: 'filename.' (Trailing Dot) (CWE-42)
2026-06-26 GitHub_M
7.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Plant executable in user-writable location
  2. Delivery
    Deliver crafted Run path with trusted prefix
  3. Exploit
    Bypass isInTrustedDirectory prefix check
  4. Execution
    User triggers Run command
  5. Persist
    ShellExecute resolves traversal
  6. Impact
    Arbitrary 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

notepad-plus-plus = 8.9.6.1

Affected Packages

euvd notepad_plus_plus no fix

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

Vendor (GitHub_M) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.1%
Top 96% exploitable
Prevalence
High
extremely widely used free Windows source-code editor
Social Media
9
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2025-15556 HIGH
7.5 Feb 03

Notepad++ versions prior to 8.8.9 contain an update integrity verification vulnerability (CVE-2025-15556) when using the

CVE-2026-85279 HIGH POC
8.6 Sep 22

Loading a crafted Notepad++ plugin that reports more than 30 external lexers can overflow a 30-element stack array insid

CVE-2026-48778 HIGH POC
7.8 Jun 26

Local code execution in Notepad++ before 8.9.6.1 occurs because the <GUIConfig name="commandLineInterpreter"> value in c

CVE-2026-86054 HIGH POC
7.8 Sep 22

Notepad++ installations prior to 8.9.8 crash when a local attacker can control the -settingsDir= command-line argument a

CVE-2026-77605 HIGH POC
7.8 Sep 22

Arbitrary code execution in Notepad++ prior to 8.9.8 on Windows 10 and Windows 11 occurs when the editor's 'Folder as Wo

CVE-2023-47452 HIGH POC
7.8 Nov 30

An Untrusted search path vulnerability in notepad++ 6.5 allows local users to gain escalated privileges through the msim

CVE-2023-40031 HIGH POC
7.8 Aug 25

Notepad++ is a free and open-source source code editor. Rated high severity (CVSS 7.8), this vulnerability is no authent

CVE-2022-32168 HIGH POC
7.8 Sep 28

Notepad++ versions 8.4.1 and before are vulnerable to DLL hijacking where an attacker can replace the vulnerable dll (Ux

CVE-2019-16294 HIGH POC
7.8 Sep 14

SciLexer.dll in Scintilla in Notepad++ (x64) before 7.7 allows remote code execution or denial of service via Unicode ch

CVE-2026-85995 HIGH POC
7.3 Sep 22

Improper signature verification in the Notepad++ updater path allows a locally planted or modified GUP.exe updater binar

CVE-2026-25926 HIGH POC
7.3 Feb 19

Notepad++ versions before 8.9.2 allow local code execution through an unsafe search path vulnerability that permits atta

CVE-2026-85288 MEDIUM POC
6.7 Sep 22

Notepad++ releases prior to 8.9.8 enforce their shortcuts.xml HMAC integrity check on the Macro menu and keyboard-shortc

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy