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

Od kart perforowanych do hasła. Historia logowania

Od kart perforowanych do hasła. Historia logowania

Dziś logowanie jest czynnością banalną: login, hasło, kliknięcie. Trudno sobie wyobrazić komputer bez kont użytkowników i uwierzytelniania. A jednak przez pierwsze dekady informatyki logowanie w ogóle...
Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
Uwaga na PDFSider – nowy zaawansowany malware używany przez grupy ransomware

Uwaga na PDFSider – nowy zaawansowany malware używany przez grupy ransomware

Nowo zidentyfikowana rodzina złośliwego oprogramowania o zaawansowanych możliwościach jest wykorzystywana w atakach ukierunkowanych (APT) – również przez wiele grup ransomware. Zagrożenie zostało...
Hakerzy z Korei Północnej używają AI do generowania backdoorów PowerShell w kampaniach phishingowych

Hakerzy z Korei Północnej używają AI do generowania backdoorów PowerShell w kampaniach phishingowych

Najbardziej aktywny północnokoreański aktor zagrożeń, znany jako Konni (śledzony również pod nazwami takimi jak Opal Sleet, TA406 czy Earth Imp), rozszerzył swoje taktyki cyberataków, sięgając po narzędzi...
Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jeśli masz odrobinę szczęścia lub „odpowiednie umiejętności” i potrafisz zdobyć lokalne uprawnienia administracyjne na Twoim komputerze w firmie lub zaliczasz się do grona tych szczęściarzy, którzy pracuj...