CVE-2026-52885 Notepad++ TOCTOU: HMAC Checks Disk, Executes from Memory
Attackers can execute arbitrary code by exploiting a race condition between HMAC validation and memory execution in Notepad++.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2026-52885?
CVE-2026-52885 is a high-severity vulnerability in notepad-plus-plus, published on 26 Jun 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Weakness: CWE-367
Which versions are affected by CVE-2026-52885?
It affects 1 product.
Products include Notepad-Plus-Plus Notepad\+\+.
How do I fix CVE-2026-52885?
No fix has been published for CVE-2026-52885 yet. Limit exposure of the affected software until one is available.
Is CVE-2026-52885 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-52885 exists.
Public exploit code: 1 proofs of concept on GitHub.
Other vulnerabilities in notepad-plus-plus
- CVE-2025-15556 Notepad++ Download of Code Without Integrity Check
- CVE-2026-48778 Notepad++: Arbitrary Code Execution via config.xml commandLineInterpreter
- CVE-2026-48800 Notepad++: Arbitrary Code Execution via shortcuts.xml UserCommand Injection
- CVE-2026-52884 Notepad++: CVE-2026-48800 Bypass
- CVE-2023-47452 Privilege escalation in n/a
Sources
Also known as GHSA-qm4c-qg8p-qfcr.