Google Native Client (NaCl) w wersji z 2015 roku dopuszczał wykonanie instrukcji procesora CLFLUSH, co umożliwiało przeprowadzenie ataku rowhammer na pamięć DRAM. Podatność uzyskała maksymalny wynik CVSS 10.0, ponieważ może prowadzić do eskalacji uprawnień bez jakiejkolwiek interakcji użytkownika lub uwierzytelnienia.
▸ Pokaż oryginał (EN)
NaCl in 2015 allowed the CLFLUSH instruction, making rowhammer attacks possible.
Atak rowhammer polega na wielokrotnym, szybkim odczycie tych samych wierszy pamięci DRAM, co powoduje elektromagnetyczne zakłócenia w sąsiednich komórkach i może doprowadzić do niezamierzonej zmiany bitów (bit flip). Instrukcja CLFLUSH pozwala na wymuszenie usunięcia danych z pamięci podręcznej procesora, dzięki czemu każde kolejne odwołanie do pamięci trafia bezpośrednio do modułów DRAM — co drastycznie zwiększa skuteczność ataku rowhammer. Brak blokady tej instrukcji w NaCl pozwalał niepriwilejowanemu kodowi sandboxowanemu na jej wykorzystanie.
Atakujący może doprowadzić do niekontrolowanej modyfikacji zawartości pamięci, potencjalnie umożliwiając sobie eskalację uprawnień lub ucieczkę z piaskownicy (sandbox escape), a także naruszenie poufności i integralności danych oraz dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Google usunęło podatność, blokując możliwość wykonania instrukcji CLFLUSH w środowisku NaCl.
Google Native Client (NaCl) w stanie z 2015 roku (przed wdrożeniem poprawki blokującej instrukcję CLFLUSH)
Publicznie dostępne exploity zostały opublikowane w Exploit-DB (wpisy 36310 i 36311), a szczegółowy opis techniki ataku rowhammer zamieścił Google Project Zero na swoim blogu w marcu 2015 roku. CVE zostało formalnie opublikowane dopiero 2020-02-25, mimo że podatność i exploit były znane od 2015 roku.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HGoogle Native Client
APPGoogle2015
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Type confusion w V8 (Google Chrome/Edge) umożliwiający heap corruption
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox