Procedura obsługi ramek beacon w stosie Wi-Fi systemu FreeBSD nie waliduje długości pola Mesh ID standardu 802.11s przed skopiowaniem go do bufora w pamięci sterty jądra. Atakujący w zasięgu sieci bezprzewodowej może nadpisać pamięć jądra i uzyskać zdalne wykonanie kodu bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
The 802.11 beacon handling routine failed to validate the length of an IEEE 802.11s Mesh ID before copying it to a heap-allocated buffer. While a FreeBSD Wi-Fi client is in scanning mode (i.e., not associated with a SSID) a malicious beacon frame may overwrite kernel memory, leading to remote code execution.
Błąd polega na braku weryfikacji długości pola IEEE 802.11s Mesh ID w ramce beacon przed wykonaniem operacji kopiowania do bufora alokowanego na stercie jądra (heap). Gdy system FreeBSD działa w trybie skanowania sieci bezprzewodowych (tzn. nie jest skojarzony z żadnym SSID), przetwarza odebrane ramki beacon ze swojego otoczenia. Osoba atakująca może rozgłaszać złośliwie spreparowaną ramkę beacon zawierającą nadmiernie długie pole Mesh ID, co prowadzi do przepełnienia bufora (heap-based buffer overflow) i nadpisania krytycznych struktur danych jądra. Konsekwencją jest możliwość zdalnego wykonania dowolnego kodu w kontekście jądra systemu operacyjnego.
Atakujący znajdujący się w zasięgu sieci bezprzewodowej może uzyskać pełną kontrolę nad systemem poprzez RCE w przestrzeni jądra, co oznacza możliwość naruszenia poufności, integralności i dostępności całego systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — patrz advisory FreeBSD-SA-22:07.wifi_meshid dostępne pod adresem https://security.freebsd.org/advisories/FreeBSD-SA-22:07.wifi_meshid.asc. Jako środek tymczasowy można rozważyć wyłączenie interfejsów Wi-Fi lub unikanie pracy w trybie skanowania sieci na podatnych systemach.
FreeBSD — wersje wskazane w referencjach producenta (advisory FreeBSD-SA-22:07.wifi_meshid)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFreebsd
OSFreebsd12.313.013.1< 12.312.4 – 13.0 (bez)
Powiązane podatności
FreeBSD UMTX_SHM_DESTROY: use-after-free umożliwiający RCE lub ucieczkę z sandboxa
RCE w implementacji NFS w OpenBSD i FreeBSD — zdalne wykonanie kodu
In versions of FreeBSD 12.4-RELEASE prior to 12.4-RELEASE-p7 and FreeBSD 13.2-RELEASE prior to 13.2-RELEASE-p5...
pam_krb5 authenticates a user by essentially running kinit with the password, getting a ticket-granting ticket...
In FreeBSD 12.2-STABLE before r368250, 11.4-STABLE before r368253, 12.2-RELEASE before p1, 12.1-RELEASE before...