În FreeBSD cinci vulnerabilități, dintre care unele pot duce la scrierea datelor la nivel de nucleu prin trimiterea unor pachete de rețea specificate sau permit unui utilizator local să își crească privilegiile. Vulnerabilitățile au fost corectate în actualizările 12.1-RELEASE-p5 și 11.3-RELEASE-p9.
Cea mai periculoasă vulnerabilitate () este cauzată de lipsa unei verificări adecvate a dimensiunii pachetului în biblioteca libalias la analiza antetelor specifice protocoalelor. Biblioteca libalias este utilizată în filtrul de pachete ipfw pentru translatarea adreselor și include funcții tipice de înlocuire a adreselor în pachetele IP și analiza protocoalelor. Vulnerabilitatea permite prin trimiterea unui pachet de rețea special conceput, citirea sau scrierea datelor în zona de memorie a nucleului (atunci când se folosește o implementare NAT în nucleu) sau a procesului
natd (în cazul utilizării unei implementări NAT în spațiul utilizatorului). Problema nu afectează configurațiile NAT construite folosind filtre de pachete pf și ipf, precum și configurațiile ipfw în care nu se folosește NAT.
Alte vulnerabilități:
- — o altă vulnerabilitate exploatabilă de la distanță în libalias, legată de calculul incorect al lungimii pachetelor în handlerul FTP. Problema se limitează la scurgerea conținutului câtorva octeți de date din zona de memorie a nucleului sau din procesul natd.
- — o vulnerabilitate în modulul cryptodev, cauzată de accesarea unei zone de memorie deja eliberate (use-after-free) și care permite unui proces fără privilegii să suprascrie sectoare arbitrare din memoria nucleului. Ca soluție de contingență împotriva vulnerabilității, se recomandă descărcarea modulului cryptodev cu comanda „kldunload cryptodev”, dacă a fost încărcat (în mod implicit, cryptodev nu este încărcat). Modulul cryptodev oferă aplicațiilor din spațiul utilizatorului acces la interfața /dev/crypto pentru a apela mecanismele de accelerate hardware ale operațiunilor criptografice (în AES-NI și OpenSSL /dev/crypto nu este utilizat).
- — a doua vulnerabilitate în cryptodev, care permite unui utilizator nepremis să inițieze o criză a nucleului prin trimiterea unei cereri pentru executarea unei operațiuni criptografice cu un MAC incorect. Problema este cauzată de lipsa verificării dimensiunii cheii MAC la alocarea buffer-ului pentru stocarea acesteia (buffer-ul era creat pe baza datelor transmise de utilizator despre dimensiune, fără verificarea dimensiunii reale).
- — o vulnerabilitate în implementarea protocolului SCTP (Stream Control Transmission Protocol), cauzată de verificarea necorespunzătoare a cheii partajate utilizate de extensia SCTP-AUTH pentru autentificarea secvențelor SCTP. O aplicație locală poate, prin Socket API, să actualizeze cheia, întrerupând în același timp conexiunea SCTP, ceea ce va conduce la accesarea unei zone de memorie deja eliberate (use-after-free).
Sursa: opennet.ro
