Łańcuch exploitów zero-click atakuje Pixela 10
Google Project Zero opublikowało pełny łańcuch exploitów zero-click dla Pixela 10, obejmujący 4 podatności prowadzące do zdalnego rootowania urządzenia. Zespół potrzebował 71 dni na patchowanie krytycznej luki w sterowniku VPU.
TL;DR: Łańcuch exploitów zero-click dla Pixela 10 składa się z 4 podatności: CVE-2025-54957 w Dolby Unified Decoder oraz 3 luk w VPU, GPU i IPU. Atak rozpoczyna się od specjalnie spreparowanego pliku multimedialnego, przechodzi przez sandbox MediaDrm, eskaluje uprawnienia przez sterownik acd_vpu i kończy pełnym rootem urządzenia. Google załatano krytyczną lukę VPU w 71 dni.
Czym jest łańcuch exploitów zero-click dla Pixela 10?
Łańcuch exploitów zero-click dla Pixela 10 to sekwencja 4 podatności pozwalających na zdalne przejęcie urządzenia bez jakiejkolwiek interakcji użytkownika. Zespół Google Project Zero zbudował pełny exploit root po raz pierwszy dla Pixela 9, następnie zaadaptował go dla nowszego modelu. Cały łańcuch rozpoczyna się od pliku multimedialnego, który po przetworzeniu przez Dolby Unified Decoder otwiera drogę do dalszej eskalacji.
Otóż pierwsza luka – CVE-2025-54957 – to krytyczny błąd w dekoderze Dolby, wcześniej wykorzystywany przeciwko urządzeniom Pixel 9. Exploit nie wymaga kliknięcia, potwierdzenia ani otwarcia pliku. Wystarczy, że plik trafi na urządzenie przez MMS, komunikator lub aplikację mediową. System automatycznie przetwarza metadane audio, uruchamiając złośliwy kod.
Z kolei dalsze etapy łańcucha wykorzystują luki w komponentach hardware’owych: VPU (Video Processing Unit), GPU oraz IPU (Image Processing Unit). Każdy z tych komponentów działa w osobnym sandboxie, jednakże exploit potrafi przejść między nimi, eskalując uprawnienia aż do roota.
Jak działa CVE-2025-54957 w Dolby Unified Decoder?
CVE-2025-54957 to błąd typu heap buffer overflow w Dolby Unified Decoder (UDC), stanowiący punkt wejścia dla całego łańcucha zero-click. Dekoder ten przetwarza formaty audio AC-4, E-AC-3 oraz AC-3, które są standardami używanymi w treściach multimedialnych. Podatność pozwala na wykonanie arbitralnego kodu w kontekście procesu MediaDrmServer.
Przede wszystkim atakujący spreparowuje plik audio z złośliwymi metadanymi. Gdy system Android indeksuje plik lub generuje miniaturę, Dolby UDC automatycznie parsuje nagłówki. Brak odpowiedniej walidacji danych wejściowych prowadzi do przepełnienia bufora na stercie. Ponadto exploit omija zabezpieczenia ASLR przez wyciek adresów pamięci z samego bufora.
Dlatego ta konkretna luka jest tak groźna – nie wymaga żadnej interakcji ofiary. Plik może zostać dostarczony przez MMS, załącznik email lub nawet przez aplikację streamingową. Cyber Kendra raportuje, że Google załatano tę lukę w ramach poprawek bezpieczeństwa Androida, jednakże pełny łańcuch wymagał usunięcia dodatkowych podatności w innych komponentach.
Jakie komponenty Pixela 10 są atakowane w łańcuchu exploitów?
Łańcuch exploitów zero-click dla Pixela 10 atakuje 4 komponenty systemowe, każdy z nich stanowi osobny etap eskalacji uprawnień. Poniżej zestawienie wszystkich luk wykorzystanych w pełnym łańcuchu:
| Komponent | Typ podatności | Efekt | Sandbox |
|---|---|---|---|
| Dolby UDC (CVE-2025-54957) | Heap buffer overflow | RCE w MediaDrmServer | MediaDrm |
| VPU (acd_vpu driver) | Use-after-free | Escalacja do kernel | Kernel |
| GPU (Mali driver) | Logic flaw | Omijanie SELinux | Kernel |
| IPU (Image processor) | Memory corruption | Root access | Kernel |
Zatem atak rozpoczyna się w przestrzeni użytkownika, wewnątrz sandboxa MediaDrm. Stamtąd exploit musi wydostać się do przestrzeni jądra. Pierwszym krokiem jest wykorzystanie sterownika VPU – acd_vpu – który zawiera błąd use-after-free pozwalający na manipulację wskaźnikami funkcji jądra.
Co więcej, zespół Project Zero musiał ominąć zabezpieczenia SELinux oraz mechanizmy sandboxowania Androida. Sterownik GPU Mali posłużył do obejścia polityk SELinux, z kolei luka w IPU umożliwiła ostateczne podniesienie uprawnień do poziomu root. Pełny opis techniczny dostępny jest na blogu Project Zero.
Dlaczego sterownik VPU był kluczowy dla całego ataku?
Sterownik VPU (acd_vpu) stanowił kluczowe ogniwo łańcucha exploitów, ponieważ był jedyną znaną ścieżką ucieczki z sandboxa MediaDrm do przestrzeni jądra na Pixelu 10. Rankiteo raportuje, że Google wydało poprawkę dla tej podatności w maju 2026, po 71 dniach od zgłoszenia.
Błąd w sterowniku VPU polega na warunku wyścigu (race condition) prowadzącym do use-after-free. Sterownik przetwarza żądania dekodowania wideo asynchronicznie, co tworzy okno czasowe, w którym obiekt jądra może zostać zwolniony, ale wskaźnik do niego pozostaje aktywny. Exploit wykorzystuje ten moment do podmiany wskaźnika funkcji.
Choć Google wdrożyło mechanizmy mitigacji takie jak KASLR i CFI, zespół Project Zero pokazał, że da się je obejść. Sterownik acd_vpu nie był odpowiednio zabezpieczony przed równoczesnym dostępem z wielu wątków. W rezultacie atakujący mógł kontrolować przepływ wykonania w kontekście jądra, co otworzyło drogę do dalszej eskalacji przez GPU oraz IPU.
Jak długo Google łatało luki w łańcuchu zero-click?
Google potrzebowało 71 dni na załatanie krytycznej luki w sterowniku VPU od momentu zgłoszenia przez zespół Project Zero. Pozostałe podatności w łańcuchu – w Dolby UDC, GPU oraz IPU – zostały załatane w różnym czasie, tworząc okno podatności trwające miesiące.
Zgodnie z polityką Project Zero, zespół daje producentom 90 dni na wydanie poprawki przed publicznym ujawnieniem szczegółów. W przypadku sterownika VPU, Google zmieściło się w tym terminie. Jednakże pełny łańcuch exploitów był funkcjonalny przez okres, w którym poszczególne komponenty pozostawały niezalatane.
Mimo to warto zaznaczyć, że Project Zero współpracuje bezpośrednio z zespołami bezpieczeństwa Androida, co przyspiesza proces patchowania. Cyberpress potwierdza, że luka CVE-2025-54957 w Dolby UDC była wcześniej wykorzystywana przeciwko Pixelom 9, co oznacza, że ten sam wektor ataku działał na dwóch generacjach urządzeń.
Podobne problemy z łańcuchami dostaw opisywałem w postmortem ataku na npm TanStack, gdzie pojedyncza luka w zależności kaskadowo wpływała na tysiące projektów.
Czym różni się exploit Pixela 10 od ataku na Pixela 9?
Exploit zero-click dla Pixela 10 jest adaptacją wcześniejszego łańcucha zbudowanego dla Pixela 9, jednak z istotnymi różnicami w technikach obejścia zabezpieczeń. Zespół Project Zero najpierw zbudował pełny exploit dla Pixela 9, demonstrując, że zdalne rootowanie jest możliwe. Gdy ten model został załatany, przenieśli się na Pixela 10.
Przede wszystkim Pixel 10 wprowadził zmodyfikowane mechanizmy sandboxowania oraz aktualizacje sterowników. Sterownik VPU acd_vpu przeszedł refaktoring, co zamknęło niektóre ścieżki ataku z Pixela 9. Niemniej jednak zespół odkrył nowe wektory w zaktualizowanym kodzie. Jak ujął to Project Zero: „When a Door Closes, a Window Opens” – zamknięcie jednej ścieżki ataku otworzyło inną.
Z kolei Dolby UDC pozostawał podatny na obu generacjach urządzeń. CVE-2025-54957 działało identycznie na Pixelu 9 i Pixelu 10, ponieważ dekoder Dolby jest dostarczany przez firmę zewnętrzną jako zamknięty komponent. Dlatego ten sam punkt wejścia wystarczył do rozpoczęcia łańcucha na obu urządzeniach, mimo różnic w pozostałych etapach eskalacji.
Jakie techniki mitigacji musiał ominąć exploit Pixela 10?
Łańcuch exploitów zero-click dla Pixela 10 musiał obejść 4 mechanizmy bezpieczeństwa: KASLR, CFI, SELinux oraz sandboxowanie Androida. Zespół Google Project Zero demonstrował, że mimo zastosowania nowoczesnych zabezpieczeń sprzętowych, odpowiednio skonstruowany łańcuch ataku pokonuje je wszystkie po kolei.
Przede wszystkim KASLR (Kernel Address Space Layout Randomization) losowo rozmieszcza pamięć jądra przy każdym uruchomieniu. Exploit pokonał to ograniczenie przez wyciek adresów z bufora Dolby UDC, co pozwoliło na precyzyjne obliczenie położenia struktur jądra. Co więcej, CFI (Control Flow Integrity) weryfikuje poprawność wywołań funkcji, jednakże błąd use-after-free w sterowniku VPU pozwolił na podmianę wskaźnika przed weryfikacją.
Z kolei SELinux ogranicza uprawnienia procesów na podstawie polityk bezpieczeństwa. Sterownik GPU Mali posłużył do obejścia tych reguł. Cyber Kendra raportuje, że zespół wykorzystał lukę logiczną w sterowniku graficznym do modyfikacji kontekstu bezpieczeństwa procesu. W rezultacie atakujący uzyskał uprawnienia wykraczające poza oryginalny sandbox MediaDrm.
Obejście mitigacji wyglądało następująco:
– Wyciek adresów z bufora sterty w Dolby UDC do pokonania KASLR
– Podmiana wskaźnika funkcji w use-after-free VPU przed weryfikacją CFI
– Modyfikacja kontekstu SELinux przez lukę w sterowniku Mali GPU
– Eskalacja do roota przez memory corruption w IPU
– Wykorzystanie race condition do synchronizacji wielowątkowych operacji
– Obejście weryfikacji stosu wywołań w przestrzeni jądra
– Manipulacja deskryptorami plików między sandboxami
– Łączenie podatności z 4 różnych komponentów w jeden ciągły łańcuch
Jakie są konsekwencje odkrycia łańcucha zero-click?
Odkrycie pełnego łańcucha zero-click dla Pixela 10 ujawnia systemowe problemy w architekturze bezpieczeństwa smartfonów, gdzie zamknięte komponenty od zewnętrznych dostawców pozostają najsłabszym ogniwem. Dolby Unified Decoder, dostarczany przez firmę trzecią jako zamknięty kod binarny, był podatny na dwóch generacjach urządzeń.
Otóż Dolby UDC działa w systemie Android jako komponent przetwarzający formaty audio AC-4, E-AC-3 oraz AC-3. Dekoder ten jest zintegrowany z frameworkiem multimediów Androida i jest wywoływany automatycznie podczas indeksowania plików. Ponieważ kod jest zamknięty, zespół Project Zero nie mógł zgłosić podatności bezpośrednio do Dolby – musiał współpracować przez pośrednictwo Google.
Dlatego problem dotyczy całego ekosystemu Androida, nie tylko Pixeli. Dekodery multimedialne od zewnętrznych dostawców są obecne w urządzeniach wielu producentów. Rankiteo podkreśla, że Google wydało poprawkę po 71 dniach od zgłoszenia, jednakże czas reakcji zależy od współpracy z dostawcami komponentów.
Co więcej, fakt że ten sam punkt wejścia – CVE-2025-54957 – działał na Pixelu 9 i Pixelu 10, wskazuje na brak należytego audytu bezpieczeństwa komponentu między generacjami urządzeń. Zewnętrzni dostawcy często nie aktualizują kodu wystarczająco szybko. Podobne zjawiska opisywałem w postmortem ataku na łańcuch dostaw npm TanStack, gdzie zależności od zewnętrznych pakietów tworzyły kaskadowe ryzyko bezpieczeństwa.
Jakie kroki podjęto po ujawnieniu podatności?
Po ujawnieniu łańcucha exploitów Google wydało poprawki dla wszystkich 4 podatności w ramach comiesięcznych aktualizacji bezpieczeństwa Androida, z najdłuższym czasem patchowania wynoszącym 71 dni dla sterownika VPU. Zespół Project Zero stosuje 90-dniowy deadline na wydanie poprawki przed pełnym ujawnieniem technicznym.
Przede wszystkim Google załatano CVE-2025-54957 w Dolby Unified Decoder jako pierwszą lukę w łańcuchu. Poprawka dodała walidację danych wejściowych w nagłówkach audio AC-4 i E-AC-3. Ponadto zaktualizowano sterownik acd_vpu, dodając mechanizmy synchronizacji wielowątkowej, które eliminują warunek wyścigu prowadzący do use-after-free.
Z kolei luki w sterownikach GPU Mali oraz IPU zostały załatane we współpracy z odpowiednimi dostawcami sprzętu. Cyberpress potwierdza, że pełny łańcuch był funkcjonalny przez okres, w którym poszczególne komponenty pozostawały niezalatane – od momentu powstania exploitu do wydania ostatniej poprawki.
Mimo to Project Zero opublikował pełny kod dowodzący (Proof of Concept) po zamknięciu wszystkich luk. Publikacja ta pozwala badaczom bezpieczeństwa na analizę technik wykorzystanych w łańcuchu ataku.
Często zadawane pytania
Czy exploit zero-click Pixela 10 działa na innych urządzeniach z Androidem?
CVE-2025-54957 w Dolby UDC dotyczy wszystkich urządzeń z Androidem korzystających z tego dekodera, nie tylko Pixeli – Google załatano lukę w majowych poprawkach bezpieczeństwa Androida 2026 roku, zaleca się natychmiastową aktualizację.
Ile czasu potrzeba na wykorzystanie łańcucha zero-click?
Zespół Project Zero zbudował pełny łańcuch w nieokreślonym czasie badawczym, jednak sam exploit wykonuje się w ciągu sekund od dostarczenia złośliwego pliku – czas reakcji zależy od szybkości przetwarzania multimediów przez urządzenie.
Czy aktualizacja systemu chroni przed tym exploit?
Tak, Google wydało poprawki dla wszystkich 4 podatności w łańcuchu, z najdłuższym czasem łatania wynoszącym 71 dni dla sterownika VPU – należy zaktualizować Pixela do najnowszych poprawek z maja 2026.
Gdzie znaleźć pełny kod exploitu?
Project Zero opublikował pełny Proof of Concept na swoim blogu po wygaśnięciu 90-dniowego okresu odpowiedzialnego ujawnienia – kod jest dostępny w repozytorium Project Zero na blogu zespołu.
Podsumowanie
Łańcuch exploitów zero-click dla Pixela 10 pokazuje kilka kluczowych wniosków dla bezpieczeństwa mobilnego:
- Zamknięte komponenty od zewnętrznych dostawców (jak Dolby UDC) stanowią najsłabsze ogniwo w architekturze bezpieczeństwa Androida, pozostając podatne przez wiele generacji urządzeń
- Pojedynczy punkt wejścia bez interakcji użytkownika wystarczy do zainicjowania łańcucha eskalacji prowadzącego do pełnego roota urządzenia
- Mechanizmy mitigacji (KASLR, CFI, SELinux) spowalniają atakujących, ale nie eliminują ryzyka całkowicie przy odpowiednio skonstruowanym łańcuchu exploitów
- Czas patchowania 71 dni dla krytycznej luki w sterowniku VPU oznacza okno podatności trwające miesiące, w którym urządzenia są narażone na atak
- Współpraca między badaczami a producentami jest kluczowa – Project Zero działa w modelu 90-dniowego deadline’u na wydanie poprawki
Zainteresowany analizą łańcuchów dostaw i bezpieczeństwem zależności? Przeczytaj postmortem ataku na łańcuch dostaw npm TanStack, gdzie opisuję podobne problemy kaskadowych podatności w ekosystemie JavaScript.