CVE-2026-52885
ŚrednieCVSS 6.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 - wyżej niż 6% wszystkich znanych CVE
Streszczenie
W Notepad++ przed wersją 8.9.6.4 występuje podatność TOCTOU (Time-of-Check Time-of-Use) w obsłudze pliku shortcuts.xml. Sprawdzanie HMAC odbywa się w momencie wykonania polecenia, ale dane polecenia są pobierane z pamięci, która nie jest synchronizowana z plikiem na dysku. Atakujący może podmienić plik przed uruchomieniem, a następnie przywrócić oryginalny, co pozwala na wykonanie złośliwego polecenia.
Ocena ryzyka
Organizacja narażona jest na wykonanie nieautoryzowanych poleceń przez atakującego z lokalnym dostępem do pliku konfiguracyjnego. Może to prowadzić do eskalacji uprawnień, uruchomienia złośliwego kodu lub naruszenia integralności systemu.
Rekomendacja
Należy niezwłocznie zaktualizować Notepad++ do wersji 8.9.6.4 lub nowszej. Dodatkowo warto ograniczyć uprawnienia do pliku shortcuts.xml tylko dla zaufanych użytkowników.
Inne podatności w Notepad++
Zobacz wszystkie- CVE-2014-9456Wysokie
Przepełnienie bufora w NotePad++ w wersji 6.6.9 umożliwia zdalnym atakującym wywołanie nieokreślonego wpływu poprzez długi atrybut Time w elemencie Event w pliku XML.
- CVE-2023-34159Krytyczne
W aplikacji Notepad występuje podatność związana z niewłaściwą kontrolą uprawnień. Skuteczne wykorzystanie tej podatności może prowadzić do eskalacji uprawnień, co wpływa na dostępność i poufność.
- CVE-2026-86056Średnie
Notepad++ to darmowy edytor kodu źródłowego o otwartym kodzie. W wersjach przed 8.9.8 procedura obsługi NPPM_SAVESESSION w PowerEditor/src/NppBigSwitch.cpp konwertuje lParam na wskaźnik sessionInfo i dereferencjonuje jego składowe nbFile, files i sessionFilePathName bez sprawdzania wartości null. Proces działający na tym samym lub wyższym poziomie integralności Windows na tym samym pulpicie może wysłać NPPM_SAVESESSION z pustym lParam, natychmiast kończąc Notepad++ i powodując odmowę usługi oraz utratę niezapisanych dokumentów. Problem naprawiono w wersji 8.9.8.
- CVE-2026-86054Wysokie
Notepad++ w wersji przed 8.9.8 zawiera przepełnienie bufora stosu w funkcji NppParameters::writeSession, ponieważ ścieżka sesji pochodząca z opcji -settingsDir= jest kopiowana do bufora backupPathName[MAX_PATH] bez sprawdzania długości. Zbyt długa ścieżka katalogu ustawień powoduje przekroczenie bufora podczas zapisu sesji, co kończy się zakończeniem procesu przez mechanizm stack canary i odmową usługi.
- CVE-2026-85995Wysokie
Notepad++ w wersjach od 8.9.7 do 8.9.8 pozwala ścieżce aktualizacji i weryfikacji podpisu zaakceptować zmodyfikowany plik GUP.exe, którego metadane certyfikatu pozostają obecne mimo nieprawidłowego skrótu Authenticode. Atakujący mogący podmienić plik powiązany z aktualizatorem może spowodować uruchomienie zmodyfikowanego kodu, gdy użytkownik wywoła aktualizację, choć sama podatność nie zapewnia zdalnego wykonania kodu.
- CVE-2026-85288Średnie
Notepad++ to darmowy edytor kodu źródłowego o otwartym kodzie. W wersjach przed 8.9.8 Notepad++ niekompletnie egzekwuje walidację HMAC pliku shortcuts.xml, ponieważ WM_MACRODLGRUNMACRO, punkt wejścia 'Run a Macro Multiple Times', wywołuje macroPlayback() bez walidacji używanej przez command(). Zmodyfikowane makro w shortcuts.xml, które jest blokowane przez menu Macro lub skrót klawiszowy, może zostać wykonane przez okno wielokrotnego uruchamiania i wywołać wewnętrzne komendy Notepad++, w tym komendy uruchamiające zewnętrzne programy, w kontekście bieżącego użytkownika. Problem naprawiono w wersji 8.9.8.
- CVE-2026-85279Wysokie
Notepad++ w wersji przed 8.9.8 zawiera przepełnienie bufora stosu w funkcji PluginsManager::loadPluginFromPath, ponieważ wynik GetLexerCount() dostarczony przez wtyczkę steruje pętlą zapisującą do tablicy containers[30] bez egzekwowania limitu NB_MAX_EXTERNAL_LANG. Złośliwa lub przejęta wtyczka zgłaszająca więcej niż 30 lekserów może zapisać poza tablicą stosu i uszkodzić dane kontrolne, co może umożliwić wykonanie dowolnego kodu w kontekście procesu Notepad++.
- CVE-2026-77605Wysokie
Notepad++ w wersji przed 8.9.8 w akcji Folder as Workspace Run by system może rozwiązać inny plik sąsiedni niż wybrany przez użytkownika. Gdy atakujący umieści skrypt polecenia o nazwie będącej ścieżką wybranego pliku tekstowego z dodanym rozszerzeniem .cmd, a użytkownik wywoła Run by system na tym pliku w Windows 10 lub 11, Notepad++ może wykonać sąsiedni skrypt jako bieżący użytkownik zamiast otworzyć wybrany plik.
- CVE-2026-71858Średnie
Notepad++ to darmowy edytor kodu źródłowego o otwartym kodzie źródłowym. Przed wersją 8.9.7, makra ładowane z kontrolowanego przez atakującego pliku shortcuts.xml omijają walidację HMAC stosowaną do UserDefinedCommands i mogą wywoływać akcje Scintilla oraz wewnętrzne polecenie Open in Default Viewer w procesie Notepad++ z podniesionymi uprawnieniami, co umożliwia modyfikację chronionych plików i warunkowe wykonanie poleceń z podniesionymi uprawnieniami, gdy lokalny atakujący wpływa na settingsDir, a użytkownik uruchomi makro. Problem naprawiono w wersji 8.9.7.
- CVE-2026-57233Wysokie
Notepad++ to darmowy edytor kodu źródłowego. Przed wersją 8.9.7, funkcja WinGup decompress łączy niezaufane nazwy wpisów ZIP z unzipDestTo bez walidacji kanonicznej, co pozwala wpisowi takiemu jak ../mimeTools/mimeTools.dll nadpisać DLL w katalogu sąsiedniej wtyczki i wykonać kod kontrolowany przez atakującego przy następnym załadowaniu wtyczki. Problem naprawiono w wersji 8.9.7.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

