Vulnerabilità root sfruttata in remoto nell'utilità ping di FreeBSD

In FreeBSD è stata identificata una vulnerabilità (CVE-2022-23093) nell'utilità ping inclusa nella distribuzione base. Il problema potrebbe potenzialmente portare all'esecuzione di codice in modalità remota con privilegi root durante il ping di un host esterno controllato da un utente malintenzionato. Una correzione è stata fornita negli aggiornamenti di FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 e 12.3-RELEASE-p10. Non è ancora chiaro se altri sistemi BSD siano interessati dalla vulnerabilità identificata (non ci sono ancora segnalazioni di vulnerabilità in NetBSD, DragonFlyBSD e OpenBSD).

La vulnerabilità è causata da un buffer overflow nel codice di analisi dei messaggi ICMP ricevuti in risposta a una richiesta di verifica. Il codice per inviare e ricevere messaggi ICMP in ping utilizza socket grezzi e viene eseguito con privilegi elevati (l'utilità viene fornita con il flag setuid root). La risposta viene elaborata lato ping attraverso la ricostruzione degli header IP e ICMP dei pacchetti ricevuti dal raw socket. Le intestazioni IP e ICMP selezionate vengono copiate nei buffer da pr_pack(), senza tenere conto del fatto che nel pacchetto possono essere presenti intestazioni estese aggiuntive dopo l'intestazione IP.

Tali intestazioni vengono estratte dal pacchetto e incluse nell'header block, ma non vengono prese in considerazione nel calcolo della dimensione del buffer. Se l'host, in risposta a una richiesta ICMP inviata, restituisce un pacchetto con intestazioni aggiuntive, il suo contenuto verrà scritto in un'area oltre il limite del buffer sullo stack. Di conseguenza, un utente malintenzionato può sovrascrivere fino a 40 byte di dati nello stack, consentendo potenzialmente l'esecuzione del proprio codice. La gravità del problema è mitigata dal fatto che nel momento in cui si verifica l'errore, il processo è in uno stato di isolamento delle chiamate di sistema (modalità capacità), che rende difficile l'accesso al resto del sistema dopo aver sfruttato la vulnerabilità. .

Fonte: opennet.ru

Aggiungi un commento