Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local low-priv access
-
DeliveryTamper shortcuts.xml with malicious macro
-
ExploitVictim opens 'Run a Macro Multiple Times' dialog
-
ExecutionmacroPlayback() skips HMAC validation
-
PersistInternal command launches external program
-
ImpactCode 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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++ 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
AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
Unauthenticated remote code execution in SmarterTools SmarterMail lets an attacker upload arbitrary files to any locatio
Windows Win32k fails to properly handle objects in memory, allowing local privilege escalation exploited in the wild in
A privilege escalation vulnerability (CVSS 5.5). Risk factors: actively exploited (KEV-listed), EPSS 94% exploitation pr
Windows Internet Shortcut Files (.url) contain an external control vulnerability (CVE-2025-33053, CVSS 8.8) that enables
Windows SMB contains an improper access control vulnerability (CVE-2025-33073, CVSS 8.8) enabling authenticated attacker
Twonky Server 8.5.2 on Linux and Windows allows unauthenticated access to the admin log file through a web service API b
An unrestricted file upload vulnerability exists in MiniWeb HTTP Server <= Build 300 that allows unauthenticated remote
FreeFloat FTP Server contains multiple critical design flaws that allow unauthenticated remote attackers to upload arbit
Serviio Media Server versions 1.4 through 1.8 on Windows contain an unauthenticated command injection in the /rest/actio
Twonky Server 8.5.2 uses hard-coded cryptographic keys for encrypting the administrator password. Combined with the cred
Mako Server versions 2.5 and 2.6 contain an unauthenticated OS command injection via the tutorial interface at examples/
React Native Metro Development Server binds to external interfaces by default and contains an OS command injection endpo
EUVD-2026-84571
NVD
CVE.org
EPSS
GitHub
Exploit-DB