Badacze z zespołu SAFA Team ujawnili poważne luki bezpieczeństwa w module piaskownicy Avast Antivirus, pozwalające na obejście izolacji i wykonanie kodu z uprawnieniami SYSTEM. Wektor ataku wynikał z błędów w sterowniku jądra aswSnx.sys, będącym kluczowym elementem mechanizmu sandboxingu w produktach Avast. W efekcie proces, który miał działać w izolowanym środowisku, mógł przejąć pełną kontrolę nad systemem Windows.
W piątek pisaliśmy o innej podatności także umożliwiającej zdobycie uprawnień SYSTEM na Windows.
Charakterystyka podatności CVE-2025-13032
Analiza wykazała obecność czterech podatności typu kernel heap overflow, wynikających z nieprawidłowej obsługi danych pochodzących z przestrzeni użytkownika. Choć dostęp do najbardziej wrażliwych funkcji wymagał wcześniejszej rejestracji procesu w piaskownicy Avast (za pomocą dedykowanego IOCTL), po spełnieniu tego warunku możliwe było uzyskanie kontroli nad sterownikiem.
Najważniejsze ustalenia techniczne:
- Błąd „double fetch” – wartość długości bufora mogła zostać zmodyfikowana przez atakującego pomiędzy momentem walidacji a adekwatnym użyciem w operacji kopiowania, co umożliwiało przepełnienie sterty jądra.
- Niebezpieczne operacje na łańcuchach znaków – funkcje manipulujące stringami nie ograniczały odpowiednio długości danych wejściowych i bazowały na niezweryfikowanych wskaźnikach.
- Brak walidacji wskaźników przekazywanych z user-space – sterownik zakładał poprawność adresów dostarczanych przez użytkownika, co umożliwiało dereferencję nieprawidłowych lub kontrolowanych przez atakującego wskaźników.
- Potencjalny lokalny DoS – niektóre błędy umożliwiały spowodowanie awarii sterownika i doprowadzenie systemu do BSOD, co mogło być wykorzystane podczas analizy lub eskalacji ataku.
Skutki
W praktyce podatności pozwalały na pełne wyjście z piaskownicy Avast oraz uzyskanie uprawnień SYSTEM, co otwierało drogę do całkowitego przejęcia systemu. Atakujący mógł:
- instalować i uruchamiać dowolne oprogramowanie,
- modyfikować lub wyłączać funkcje ochronne,
- manipulować procesami systemowymi,
- ukrywać własną aktywność poprzez ingerencję w logi i monitorowanie.
Luka była szczególnie groźna dla środowisk korporacyjnych i infrastruktury krytycznej, gdzie oprogramowanie zabezpieczające pełni kluczową funkcję w bezpieczeństwie informatycznym (choć my uważamy, iż antywirus to żadne zabezpieczenie).
Proces naprawczy
Podatności zostały odnalezione w wersji Avast 25.2.9898.0, a po zgłoszeniu ich producentowi poprawki wydano w ciągu ok. 12 dni. Zmiany obejmowały:
- eliminację wszystkich miejsc podatnych na „double fetch”,
- wprowadzenie bezpiecznych limitów na długości buforów,
- dodanie pełnej walidacji wskaźników z przestrzeni użytkownika,
- przepisanie fragmentów funkcji IOCTL w celu ograniczenia powierzchni ataku.
Wnioski i znaczenie incydentu
Przypadek ten pokazuje, iż choćby narzędzia służące do ochrony systemu mogą stać się wektorem ataku, jeżeli ich komponenty niskopoziomowe zawierają błędy. Mechanizmy sandboxingu, choć projektowane jako bezpieczne, okazują się podatne na obejście, jeżeli nieprawidłowo obsługują dane użytkownika i pamięć jądra.
Regularne aktualizacje systemu antywirusowego oraz okresowe audyty kodu na poziomie sterowników są absolutnie kluczowe, aby zapobiegać podobnym naruszeniom bezpieczeństwa.


