Notepad++ TOCTOU: HMAC Checks Disk, Executes from Memory
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
Notepad++ is a free and open-source source code editor. Prior to 8.9.6.4, NppCommands.cpp checks the HMAC of the on-disk shortcuts.xml at the moment a user command fires (Time-of-Check). However, the command payload is taken from the in-memory _userCommands vector, which is populated at application startup and never re-synchronized with the on-disk file (Time-of-Use). Swapping shortcuts.xml between startup and command execution causes the HMAC check to validate a clean file while a malicious command runs. An attacker with write access to shortcuts.xml places a malicious version on disk before launch, then immediately restores the legitimate file. The HMAC check at execution time validates the restored legitimate file (check passes), while the malicious payload executes from memory. This vulnerability is fixed in 8.9.6.4.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| notepad-plus-plus | notepad-plus-plus | before 8.9.6.4 | 8.9.6.4 | Patch available | CNA |
- notepad-plus-plus Vendornotepad-plus-plus Affected before 8.9.6.4 Fixed in 8.9.6.4 Patch available CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:notepad-plus-plus:notepad\+\+:*:*:*:*:*:*:*:* | before 8.9.6.4 | Vulnerable | notepad-plus-plus |
- cpe:2.3:a:notepad-plus-plus:notepad\+\+:*:*:*:*:*:*:*:* Versions before 8.9.6.4 Vulnerable ·notepad-plus-plus
Remediation
- Fix · CNA notepad-plus-plus (notepad-plus-plus) Fixed in 8.9.6.4
Timeline
- 2026-10-02 Threatist record created from CVE-2026-52885
References
More notepad-plus-plus Notepad++ vulnerabilities
- TI-2025-14195 Notepad++ < 8.8.9 WinGUp Updater Lacks Update Integrity Verification KEVCVSS 4.0HIGH 7.7
- TI-2026-36070 Notepad++: Arbitrary Code Execution via shortcuts.xml UserCommand Injection CVSS 3.1HIGH 7.8
- TI-2026-36048 Notepad++: Arbitrary Code Execution via config.xml commandLineInterpreter CVSS 3.1HIGH 7.8
- TI-2026-04836 Stack-Based Buffer Overflow in Notepad++ File Drop Handler leads to DoS CVSS 3.1HIGH 7.8
- TI-2023-20921 Notepad++ vulnerable to heap buffer write overflow in Utf8_16_Read::convert CVSS 3.1HIGH 7.8
- TI-2022-13732 Buffer overflow in function Notepad_plus::addHotSpot in Notepad++ v8.4.3 and earlier… CVSS 3.1MEDIUM 6.5
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences