Menu dostępności

notepad++ wirusy

Otwierasz plik w Notepad++ i od razu uruchamiasz wirusa. Jak to możliwe?

Chyba nie ma osoby w IT, która nie używałaby popularnego programu z tytułu. Dlatego dzisiaj postanowiliśmy opisać pewien związany z nim problem, ponieważ ci, którzy przyzwyczaili się do niego w codziennej pracy, mogą być narażeni na atak ze strony cyberprzestępców.

W poprzednim tygodniu pisaliśmy o podobnym przypadku, ale w aplikacji WinRAR. Tym razem odkryto wiele usterek w aplikacji Notepad++, pozwalających atakującym na wykonanie dowolnego kodu. Możesz otworzyć złośliwy plik w aplikacji, a w tle niekontrolowanie wykona się dowolny kod, który może uruchomić malware na Twoim komputerze.

Krótko o Notepad ++

Notepad++ to edytor kodu źródłowego i zamiennik Notatnika w Microsoft Windows, oparty na C++ typu open source. Działa w architekturze procesorów opartych na x86, x64 i AArch64. Notepad++ obsługuje edycję na kartach i umożliwia pracę z wieloma plikami w jednym oknie. Rozwinął go Don Ho.

Interfejs notepad++

Ponieważ aplikacja jest darmowa, jej bezpieczeństwo z natury może pozostawiać wiele do życzenia. W końcu ktoś wziął ją na warsztat i pokazał podatności.

Podatności w Notepad++

Nowe podatności w Notepad++ odkrył i opublikował SecurityLab. Wykryto w kilka luk w zabezpieczeniach związanych z przepełnieniem bufora, które mogą zostać wykorzystane przez cyberprzestępców do szkodliwych celów. Istotność luk waha się od 5,5 (średnia) do 7,8 (wysoka).

Luki wynikają z przepełnienia bufora zapisu i odczytu bufora sterty w niektórych funkcjach i bibliotekach używanych przez oprogramowanie, zidentyfikowanych przez badacza bezpieczeństwa Gitlab Jaroslava Lobačevskiego (@JarLob).

CVE-2023-40031: Przepełnienie bufora sterty w Utf8_16_Read::convert

Notepad++ używa funkcji o nazwie Utf8_16_Read::convert, która konwertuje kodowanie UTF16 na UTF8. Funkcja ma wadę, ponieważ zakłada, że na każde dwa bajty zakodowane w UTF16 potrzebne są trzy bajty zakodowane w UTF8. Jeśli fragment bajtów jest ustawiony na wartość nieparzystą, np. 9, obliczenia stają się niezgodne, co skutkuje przepełnieniem bufora.

CVE-2023-40036: Przepełnienie globalnego bufora podczas odczytu w CharDistributionAnalytics::HandleOneChar

Luka ta istnieje, ponieważ kolejność indeksów tablicy zależy od rozmiaru bufora mCharToFreqOrder, który podmiot zagrażający może wykorzystać, specjalnie tworząc plik prowadzący do przepełnienia globalnego bufora podczas odczytu bufora. Dodatkowo aplikacja korzysta również z biblioteki uchardet, która wspiera tę operację.

CVE-2023-40164: Przepełnienie globalnego bufora podczas odczytu w nsCodingStateMachine::NextState

Notepad++ używa rozbieżnej kopii biblioteki uchardet, która okazała się podatna na przepełnienie globalnego bufora odczytu. Dzieje się tak, ponieważ indeks tablicy byteCls jest zależny od rozmiaru bufora charLenTable, który może wykorzystać specjalnie spreparowany plik.

CVE-2023-40166: Przepełnienie bufora sterty podczas odczytu w FileManager::detectLanguageFromTextBegining

Otwierając plik, Notepad++ wywołuje funkcję FileManager::loadFile, która przydziela bufor o stałym rozmiarze, a następnie FileManager::loadFileData ładuje pierwszy blok danych do bufora.

Następnie wywołuje metodę DetectLanguageFromTextBegining, aby zidentyfikować typ zawartości punktu początkowego pliku. Błąd istnieje, ponieważ pętla FileManager::detectLanguageFromTextBegining nie sprawdza, czy i+longestlength < dataLen, co powoduje przepełnienie bufora.

Jak żyć z nowymi podatnościami w Notepad++?

Notepad++ nie załatał tych luk (nawet w najnowszej wersji do pobrania na stronie – v8.5.6) ani nie potwierdził jeszcze poprawek usuwających je. Jednakże zgodnie ze skoordynowaną polityką ujawniania informacji, GitLab opublikował luki wraz z weryfikacją koncepcji. Raport z przykładami kodu możecie zobaczyć tutaj.

Do czasu załatania powyższych luk zalecamy ostrożne posługiwanie się programem. W szczególności należy uważać przy otwieraniu zewnętrznych plików o nieznanym pochodzeniu.

Popularne

7-Zip podatny na NTFS Heap Overflow

7-Zip podatny na NTFS Heap Overflow

Jaroslav Lobačevski z GitHub Security Lab opublikował analizę nowej podatności odnalezionej w 7-Zip, oznaczonej jako GHSL-2026-140. Luka dotyczy parsera NTFS i prowadzi do uszkodzenia pamięci procesu, co w...
Repozytoria na GitHubie zainfekowane w ataku Megalodon!

Repozytoria na GitHubie zainfekowane w ataku Megalodon!

Ponad 5 500 repozytoriów na GitHubie zostało zainfekowanych złośliwym oprogramowaniem w ataku na łańcuch dostaw, wykorzystującym zautomatyzowane zatwierdzanie zmian. Kampania, nazwana „Megalodon”, opiera si...
YellowKey: koniec mitu o bezpieczeństwie BitLockera? Nowy zero-day pozwala ominąć szyfrowanie przy użyciu zwykłego pendrive’a

YellowKey: koniec mitu o bezpieczeństwie BitLockera? Nowy zero-day pozwala ominąć szyfrowanie przy użyciu zwykłego pendrive’a

Jeszcze w piątek opisywaliśmy nowe podatności typu zero-day, o nazwach YellowKey oraz GreenPlasma, uderzające w mechanizmy bezpieczeństwa systemów Windows. Najnowsze informacje pokazują jednak, że spr...
Claude Mythos AI znajduje tysiące podatności. Problem w tym, że nikt nie nadąża z ich łataniem

Claude Mythos AI znajduje tysiące podatności. Problem w tym, że nikt nie nadąża z ich łataniem

Przez lata największym problemem bezpieczeństwa było znajdowanie podatności. Dziś okazuje się, że to coś zupełnie innego – tempo ich naprawiania. Bardzo dobrze pokazuje to projekt Glasswing od Anthrop...
Gdy antywirus staje się bronią. Microsoft ostrzega przed aktywnie wykorzystywanymi lukami w Defenderze

Gdy antywirus staje się bronią. Microsoft ostrzega przed aktywnie wykorzystywanymi lukami w Defenderze

Systemy ochrony końcówek (endpoint protection) od lat stanowią pierwszą linię obrony przed cyberatakami. Paradoksalnie jednak coraz częściej to właśnie mechanizmy bezpieczeństwa stają się celem atak...