Skip to main content

Notepad++ EUVDEUVD-2026-84571

| CVE-2026-85288 MEDIUM
OS Command Injection (CWE-78)
2026-09-22 GitHub_M
6.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain local low-priv access
  2. Delivery
    Tamper shortcuts.xml with malicious macro
  3. Exploit
    Victim opens 'Run a Macro Multiple Times' dialog
  4. Execution
    macroPlayback() skips HMAC validation
  5. Persist
    Internal command launches external program
  6. Impact
    Code execution as current 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

Requires local write access to the current user's shortcuts.xml so a tampered/blocked macro can be planted, plus Notepad++ prior to 8.9.8 which enforces HMAC on the Macro-menu/shortcut path but not on the multi-run path. Exploitation is gated by user interaction: a user must open the 'Run a Macro Multiple Times' dialog (WM_MACRODLGRUNMACRO) to invoke macroPlayback(). Execution occurs only in the current user's context (no privilege elevation), and the affected macro must reference an internal command capable of launching external programs. These local-access, user-interaction, and high-complexity limits substantially constrain realistic risk despite the high C/I/A subscores.

Impact

This is a genuine but low-urgency defense-bypass, not a high-impact remote flaw. The CVSS 6.7 (AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H) correctly reflects local-only exploitation requiring existing low-privilege access, high attack complexity, and user interaction. No EPSS score, no CISA KEV listing, and no public POC were provided - no public exploit identified at time of analysis. Critically, the vulnerability is a bypass of a self-protection control (shortcuts.xml HMAC integrity checking): the C:H/I:H/A:H impact is largely redundant because an attacker who can already tamper with shortcuts.xml in the user's config directory can generally run code as that user by other means. The CWE-78 (OS Command Injection) mapping and 'Command Injection' tag are technically defensible since blocked macros can invoke commands that launch external programs, but the real-world value to an attacker is marginal. Bottom line: this is a hardening/completeness fix for an integrity mechanism, not a priority patch versus internet-facing CVEs - the high C/I/A subscores overstate practical risk given the local-write precondition.

Exploit ScenarioDerived

An attacker with local file-write access (or a malicious installer/script) modifies the user's shortcuts.xml to add a macro that invokes an internal Notepad++ command launching an external program. Although the tampered macro is blocked by HMAC validation through the Macro menu and shortcut keys, the victim invoking 'Run a Macro Multiple Times' triggers macroPlayback() directly, which skips the check and executes the payload in the current user's context. No public exploit code is known; exploitation is local, requires user interaction, and has high complexity.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 22, 2026

Notepad++ releases prior to 8.9.8 enforce their shortcuts.xml HMAC integrity check on the Macro menu and keyboard-shortcut paths but omit it on the WM_MACRODLGRUNMACRO handler that powers the 'Run a Macro Multiple Times' dialog, so a tampered macro that is correctly blocked elsewhere still executes when invoked from that dialog. An attacker who can write to the current user's shortcuts.xml (for example later-stage malware, a tampered installer, or a low-integrity shared profile location) can plant a macro that calls internal Notepad++ commands, including commands that launch external programs, running entirely in that user's context with no privilege elevation. Exploitation is gated by local write access and by the victim opening the multi-run dialog; CVSS 3.1 rates it 6.7 (AV:L/AC:H/PR:L/UI:R), authentication requirements are authenticated for a local user per the provided vector (PR:L), and no public exploit identified at time of analysis. This is a genuine but low-urgency defense-bypass rather than a high-impact remote flaw.

RemediationAI

Upgrade Notepad++ to 8.9.8 or later (vendor-released patch: 8.9.8), available from the release tag at https://github.com/notepad-plus-plus/notepad-plus-plus/releases/tag/v8.9.8 and announced at https://notepad-plus-plus.org/news/v898-released, with details in advisory GHSA-759j-g8j4-867p; the fix is contained in commit 4cd74cb9347b9c6caaab17d999e24fc9ed228ff7. After upgrading, accept the new behavior in which Notepad++ opens shortcuts.xml read-only and demands explicit review plus the 'Validate shortcuts.xml' menu action whenever the file's HMAC is missing from config.xml or no longer matches, which regenerates and stores a trusted HMAC - note the side effect that legitimate hand-edited macros and shortcuts will be blocked until the user completes that one-time review. If upgrading must be deferred, reduce exposure by removing or emptying the macros section of shortcuts.xml and keeping a known-good copy of config.xml and shortcuts.xml so unexpected edits are detectable, by tightening NTFS write permissions on %APPDATA%\Notepad++ (and on any shared or portable profile location) so that only the interactive user account and administrators can modify shortcuts.xml, and by training users not to open Config > Run a Macro Multiple Times - a trade-off that removes a legitimate automation feature, and that does not help once the attacker already runs as that same user. Because the bypass only matters when a tampered macro is already present locally, endpoint monitoring for unexpected writes to shortcuts.xml and for child processes spawned by notepad++.exe provides the most reliable remaining detection while 8.9.8 is being rolled out.

Affected VersionsENISA

notepad-plus-plus < 8.9.8

Affected Packages

euvd notepad_plus_plus fix: 8.9.8

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++ stores user macros and shortcut mappings in shortcuts.xml and protects that file with an HMAC value persisted in config.xml, letting the editor detect manual or malicious modification of macro definitions before executing them. The failure class is CWE-78 (improper neutralization of special elements used in an OS command): because macros can reference internal Notepad++ commands that in turn spawn external programs, a macro file becomes an indirect command-execution primitive once its integrity check is skipped. In the vulnerable code, the routine reached through the ordinary command() path validated the stored HMAC (_shortcutsXmlHmacInConfig) against the on-disk value (_shortcutsOnDiskHmac), but the WM_MACRODLGRUNMACRO message handler called macroPlayback() directly without that validation, creating a parallel entry point that trusted a file the validated path would have rejected. The 8.9.8 fix (commit 4cd74cb9347b9c6caaab17d999e24fc9ed228ff7 in PowerEditor/src/NppBigSwitch.cpp) adds the missing check to that handler: if no HMAC exists in config.xml it refuses execution, opens shortcuts.xml read-only, forces the user to review it and confirm via 'Validate shortcuts.xml' to generate and persist an HMAC, and returns FALSE; if the HMAC exists but does not match the on-disk value it likewise warns, opens the file read-only for review, and returns FALSE. Affected installs are all Notepad++ builds up to and including 8.9.7 on Windows, matching CPE cpe:2.3:a:notepad-plus-plus:notepad-plus-plus with a wildcard version range.

Know when Windows 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 6.7 MEDIUM
AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 6.7 MEDIUM

Local-only, needs pre-existing write to shortcuts.xml (PR:L) plus victim invoking the multi-run dialog (UI:R, AC:H); arbitrary program launch justifies C/I/A:H though impact is largely redundant.

3.1 AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:P/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
High
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 22, 2026 - 18:02 EUVD
CVE Published
Sep 22, 2026 - 17:11 cve.org
MEDIUM 6.7

DescriptionCVE.org

Notepad++ is a free and open-source source code editor. Prior to 8.9.8, Notepad++ incompletely enforces shortcuts.xml HMAC validation because WM_MACRODLGRUNMACRO, the Run a Macro Multiple Times entry point, calls macroPlayback() without the validation used by command(). A tampered shortcuts.xml macro that is blocked through the Macro menu or a shortcut key can therefore execute through the multi-run dialog and invoke internal Notepad++ commands, including commands that launch external programs, in the current user context. This issue is fixed in version 8.9.8.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
High
Extremely popular free Windows source-code editor, broadly installed on developer/end-user desktops
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

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

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

CVE-2025-52691 CRITICAL POC
10.0 Dec 29

Unauthenticated remote code execution in SmarterTools SmarterMail lets an attacker upload arbitrary files to any locatio

CVE-2019-0803 HIGH POC
7.8 Apr 09

Windows Win32k fails to properly handle objects in memory, allowing local privilege escalation exploited in the wild in

CVE-2020-1472 MEDIUM POC
5.5 Aug 17

A privilege escalation vulnerability (CVSS 5.5). Risk factors: actively exploited (KEV-listed), EPSS 94% exploitation pr

CVE-2025-33053 HIGH POC
8.8 Jun 10

Windows Internet Shortcut Files (.url) contain an external control vulnerability (CVE-2025-33053, CVSS 8.8) that enables

CVE-2025-33073 HIGH POC
8.8 Jun 10

Windows SMB contains an improper access control vulnerability (CVE-2025-33073, CVSS 8.8) enabling authenticated attacker

CVE-2025-13315 CRITICAL POC
9.3 Nov 19

Twonky Server 8.5.2 on Linux and Windows allows unauthenticated access to the admin log file through a web service API b

CVE-2013-10047 CRITICAL POC
9.3 Aug 01

An unrestricted file upload vulnerability exists in MiniWeb HTTP Server <= Build 300 that allows unauthenticated remote

CVE-2012-10030 CRITICAL POC
9.3 Aug 05

FreeFloat FTP Server contains multiple critical design flaws that allow unauthenticated remote attackers to upload arbit

CVE-2025-34101 CRITICAL POC
9.3 Jul 10

Serviio Media Server versions 1.4 through 1.8 on Windows contain an unauthenticated command injection in the /rest/actio

CVE-2025-13316 HIGH POC
8.2 Nov 19

Twonky Server 8.5.2 uses hard-coded cryptographic keys for encrypting the administrator password. Combined with the cred

CVE-2025-34095 CRITICAL POC
9.3 Jul 10

Mako Server versions 2.5 and 2.6 contain an unauthenticated OS command injection via the tutorial interface at examples/

CVE-2025-11953 CRITICAL POC
9.8 Nov 03

React Native Metro Development Server binds to external interfaces by default and contains an OS command injection endpo

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