
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
W Notepad++ wykryto podatność, która może prowadzić do wykonania dowolnego kodu w kontekście aktualnie zalogowanego użytkownika systemu Windows. Problem dotyczy sposobu, w jaki aplikacja odczytuje ustawienie commandLineInterpreter z pliku config.xml i wykorzystuje je podczas uruchamiania funkcji otwierania katalogu pliku w interpreterze poleceń.
W praktyce oznacza to, że lokalna modyfikacja pliku konfiguracyjnego może sprawić, iż zamiast domyślnego interpretera zostanie uruchomiony dowolny wskazany program. To klasyczny przykład błędu logicznego, w którym zaufanie do danych konfiguracyjnych użytkownika prowadzi do niebezpiecznego wykonania poleceń.
W skrócie
Podatność została oznaczona jako CVE-2026-48778 i obejmuje wersje Notepad++ do 8.9.6 włącznie. Mechanizm nadużycia polega na podmianie wartości znacznika odpowiedzialnego za interpreter wywoływany przez opcję „Open Containing Folder in cmd”.
- zagrożone są wersje do 8.9.6 włącznie,
- skutkiem może być uruchomienie dowolnego pliku wykonywalnego,
- atak odbywa się w kontekście bieżącego użytkownika,
- producent opublikował poprawkę w wersji 8.9.6.1,
- problem ma wysoki wpływ bezpieczeństwa mimo lokalnego charakteru wektora.
Kontekst / historia
Podatność została publicznie opisana pod koniec maja 2026 roku i szybko zwróciła uwagę społeczności bezpieczeństwa. Choć nie jest to klasyczny przypadek zdalnego ataku przez sieć, luka jest istotna ze względu na prostotę wykorzystania oraz możliwość dostarczenia złośliwej konfiguracji pośrednimi kanałami.
Znaczenie problemu rośnie szczególnie w środowiskach, gdzie profile użytkowników są synchronizowane, archiwizowane lub przenoszone między systemami. W takich modelach zainfekowany plik ustawień może zostać przeniesiony bez bezpośredniego naruszenia samej aplikacji. Dodatkowo uwagę zwrócono na możliwość wykorzystania parametru -settingsDir=, co rozszerza powierzchnię ataku o złośliwe skróty i spreparowane katalogi z ustawieniami.
Analiza techniczna
Źródłem podatności jest obsługa wpisu <GUIConfig name="commandLineInterpreter"> w pliku config.xml. Aplikacja zapisuje tę wartość jako parametr wykorzystywany później przy uruchamianiu funkcji otwierającej katalog bieżącego pliku w interpreterze poleceń. Problem polega na braku odpowiedniej walidacji ścieżki i braku ograniczenia do zaufanej listy dozwolonych programów.
Jeżeli atakujący uzyska możliwość modyfikacji pliku %APPDATA%\Notepad++\config.xml, może podmienić wartość interpretera na dowolny plik wykonywalny. Gdy użytkownik uruchomi funkcję „File → Open Containing Folder → cmd” lub odpowiadającą jej akcję z menu kontekstowego, Notepad++ wykona wskazany przez napastnika payload.
Z technicznego punktu widzenia jest to przypadek niebezpiecznego użycia danych z konfiguracji w kontekście uruchamiania poleceń systemowych. Taki wzorzec dobrze wpisuje się w klasyfikację CWE-78, czyli niewłaściwą neutralizację danych używanych do konstruowania poleceń systemowych.
- bezpośrednia modyfikacja katalogu profilu użytkownika,
- użycie złośliwego skrótu z alternatywnym katalogiem ustawień,
- zatrucie synchronizowanych ustawień,
- socjotechnika prowadząca do umieszczenia plików w lokalizacji profilu.
Publiczne proof-of-concept pokazuje prostą podmianę wartości na calc.exe, ale rzeczywisty wpływ jest znacznie szerszy. W analogiczny sposób można uruchomić malware, loader, skrypt lub inne narzędzie wykorzystywane w kolejnych etapach ataku.
Konsekwencje / ryzyko
Najważniejszą konsekwencją jest wykonanie dowolnego kodu z uprawnieniami bieżącego użytkownika. To otwiera drogę do uruchomienia złośliwego oprogramowania, kradzieży danych, ustanowienia trwałości w systemie oraz przygotowania środowiska pod dalszą eskalację działań.
Ryzyko jest szczególnie istotne w organizacjach, gdzie Notepad++ jest używany przez administratorów, programistów, operatorów SOC i analityków pracujących na wrażliwych stacjach roboczych. Nawet jeśli atak wymaga interakcji użytkownika, jego przebieg może pozostać niezauważony, ponieważ wykorzystuje legalną funkcję programu i pozornie standardowy scenariusz pracy.
- uruchomienie nieautoryzowanego kodu,
- kompromitacja danych użytkownika,
- utrwalenie obecności w systemie,
- wykorzystanie hosta jako punktu wejścia do dalszego ruchu bocznego,
- utrudniona detekcja przy użyciu plików imitujących legalne narzędzia systemowe.
Rekomendacje
Podstawowym działaniem naprawczym jest aktualizacja Notepad++ do wersji 8.9.6.1 lub nowszej. W środowiskach firmowych warto potraktować tę zmianę priorytetowo, szczególnie na stacjach roboczych użytkowników uprzywilejowanych i zespołów technicznych.
Poza aktualizacją zalecane jest wdrożenie dodatkowych mechanizmów ochronnych i monitorujących.
- monitorowanie integralności plików w katalogu
%APPDATA%\Notepad++\, - wykrywanie nieautoryzowanych zmian w pliku
config.xml, - blokowanie uruchamiania niezaufanych binariów z katalogów użytkownika,
- ograniczenie możliwości zapisu do profili przez niezweryfikowane procesy,
- kontrola parametrów uruchomieniowych wskazujących alternatywny katalog ustawień,
- korelacja zdarzeń EDR łączących proces Notepad++ z nietypowym uruchamianiem plików wykonywalnych,
- rozważenie użycia AppLocker lub WDAC w celu ograniczenia skutków podobnych błędów.
Podsumowanie
CVE-2026-48778 pokazuje, że poważne skutki bezpieczeństwa mogą wynikać nie tylko z błędów pamięci czy podatności sieciowych, ale również z pozornie prostego zaufania do lokalnej konfiguracji. W Notepad++ luka pozwala przejąć działanie funkcji otwierania katalogu w wierszu poleceń i zastąpić je uruchomieniem dowolnego programu.
Mimo że scenariusz wymaga dostarczenia złośliwej konfiguracji i interakcji użytkownika, realny wpływ bezpieczeństwa pozostaje wysoki. Z tego względu organizacje powinny nie tylko wdrożyć poprawkę, ale też objąć większą kontrolą pliki ustawień użytkownika oraz zachowania procesów uruchamianych z popularnych aplikacji desktopowych.