CVE-2026-54758
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
Notepad++ to darmowy edytor kodu źródłowego. Przed wersją 8.9.7, funkcja expandNppEnvironmentStrs w pliku RunDlg.cpp kopiuje nazwę zmiennej Notepad++ między $( i ) do bufora stosu o stałym rozmiarze wchar_t str[MAX_PATH] bez ograniczenia indeksu pętli m, co pozwala nazwie o długości 260 lub więcej znaków uszkodzić sąsiednie dane stosu, zakończyć proces przez __report_gsfailure i potencjalnie wykonać kod. Problem naprawiono w wersji 8.9.7.
Ocena ryzyka
Podatność może prowadzić do awarii procesu lub potencjalnego wykonania kodu, co może skutkować przejęciem systemu. Atak wymaga jednak uruchomienia specjalnie spreparowanego polecenia.
Rekomendacja
Zaleca się aktualizację Notepad++ do wersji 8.9.7 lub nowszej. Należy również unikać uruchamiania niezaufanych poleceń z długimi zmiennymi środowiskowymi.
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.7, the expandNppEnvironmentStrs function in PowerEditor/src/WinControls/StaticDialog/RunDlg/RunDlg.cpp copies a Notepad++ variable name between $( and ) into the fixed-size wchar_t str[MAX_PATH] stack buffer without bounding the m loop index, allowing a name of 260 or more characters to corrupt adjacent stack data, terminate the process through __report_gsfailure, and potentially execute code. This issue is fixed in version 8.9.7.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

