Nelle versioni del firmware UEFI basate sulla piattaforma open source TianoCore EDK2, comunemente utilizzate nei sistemi server, sono state individuate 9 vulnerabilità, che hanno ricevuto il nome collettivo di PixieFAIL. Le vulnerabilità si trovano nello stack di rete dei firmware, utilizzato per l'avvio di rete (PXE). Le vulnerabilità più pericolose consentono a un attaccante non autenticato di eseguire codice da remoto a livello di firmware nei sistemi che consentono l'avvio PXE tramite rete IPv6.
Problemi meno critici portano a interruzioni del servizio (blocco dell'avvio), perdita di dati, avvelenamento della cache DNS e intercettazione delle sessioni TCP. La maggior parte delle vulnerabilità può essere sfruttata dalla rete locale, ma alcune vulnerabilità consentono attacchi anche da una rete esterna. Uno scenario tipico di attacco prevede il monitoraggio del traffico nella rete locale e l'invio di pacchetti appositamente formattati al rilevamento di attività legate all'avvio del sistema tramite PXE. L'accesso a server un server di avvio o DHCP non è necessario. Per dimostrare la tecnica di attacco sono stati pubblicati prototipi di exploit.
I firmware UEFI basati sulla piattaforma TianoCore EDK2 sono utilizzati in molte grandi aziende, fornitori di servizi cloud, data center e cluster di calcolo. In particolare, il modulo vulnerabile NetworkPkg con implementazione dell'avvio PXE è utilizzato nei firmware sviluppati da aziende come ARM, Insyde Software (Insyde H20 UEFI BIOS), American Megatrends (AMI Aptio OpenEdition), Phoenix Technologies (SecureCore), Intel, Dell e Microsoft (Project Mu). Si presume che le vulnerabilità possano interessare anche la piattaforma ChromeOS, la quale contiene un pacchetto EDK2 nel suo repository, ma Google ha dichiarato che tale pacchetto non è utilizzato nei firmware per dispositivi Chromebook e che la piattaforma ChromeOS non è soggetta al problema.
Vulnerabilità identificate:
- CVE-2023-45230 — overflow del buffer nel codice del client DHCPv6, sfruttato tramite l'invio di un identificatore troppo lungo server (opzione Server ID).
- CVE-2023-45234 — overflow del buffer durante l'elaborazione dell'opzione con parametri DNS server, trasmessi nel messaggio che annuncia la presenza del server DHCPv6.
- CVE-2023-45235 — overflow del buffer durante l'elaborazione dell'opzione con identificatore del server (Server ID) nei messaggi di annunci del proxy per DHCPv6.
- CVE-2023-45229 — overflow intero attraverso l'underflow, manifestantesi durante l'elaborazione delle opzioni IA_NA/IA_TA nei messaggi DHCPv6, annunciando un server DHCP.
- CVE-2023-45231 — perdita di dati a causa di un overflow del buffer durante l'elaborazione dei messaggi ND Redirect (Neighbor Discovery) con valori delle opzioni troncati.
- CVE-2023-45232 — loop infinito durante l'analisi di opzioni sconosciute nell'intestazione opzioni di destinazione (Destination Options).
- CVE-2023-45233 — loop infinito durante l'analisi dell'opzione PadN nell'intestazione del pacchetto.
- CVE-2023-45236 — utilizzo di numeri di sequenza TCP prevedibili che potrebbero consentire l'inserimento in una connessione TCP.
- CVE-2023-45237 — utilizzo di un generatore di numeri pseudocasuali non affidabile che restituisce valori prevedibili.
Le informazioni sulle vulnerabilità sono state inviate a CERT/CC il 3 agosto 2023, e la data di divulgazione era prevista per il 2 novembre. Tuttavia, a causa della necessità di un rilascio coordinato di patch che coinvolgesse molti fornitori, la data di pubblicazione è stata inizialmente posticipata al 1 dicembre, poi posticipata al 12 dicembre e 19 dicembre 2023, ma infine è stata rivelata il 16 gennaio 2024. Microsoft ha richiesto di ritardare la divulgazione delle informazioni fino a maggio.
Fonte: opennet.ru
