Vulnerabilitatea în stiva IPv6 a nucleului Linux care permite executarea codului de la distanță

Au fost dezvăluite informații despre vulnerabilitatea CVE-2023-6200) din stiva de rețea a nucleului Linux, care, în anumite circumstanțe, permite unui atacator dintr-o rețea locală să realizeze execuția codului său prin trimiterea unui pachet ICMPv6 special conceput cu un mesaj RA (Router Advertisement) destinat să facă publicitate informații despre router.

Vulnerabilitatea poate fi exploatată doar din rețeaua locală și apare pe sistemele cu suportul IPv6 activat și activ parametrul sysctl „net.ipv6.conf.<network_interface_name>.accept_ra” (se poate verifica cu comanda „sysctl net.ipv6.conf | grep accept_ra”) , care este dezactivată implicit în RHEL și Ubuntu pentru interfețele de rețea externe, dar activată pentru interfața loopback, care permite un atac din același sistem.

Vulnerabilitatea este cauzată de o condiție de cursă atunci când colectorul de gunoi procesează înregistrări fib6_info învechite, ceea ce poate duce la accesul la o zonă de memorie deja eliberată (use-after-free). Când se primește un pachet ICMPv6 cu un mesaj publicitar de ruter (RA, Router Advertisement), stiva de rețea apelează funcția ndisc_router_discovery(), care, dacă mesajul RA conține informații despre durata de viață a rutei, apelează funcția fib6_set_expires() și completează gc_link. structura. Pentru a curăța intrările învechite, utilizați funcția fib6_clean_expires(), care detașează intrarea din gc_link și șterge memoria folosită de structura fib6_info. În acest caz, există un anumit moment în care memoria pentru structura fib6_info a fost deja eliberată, dar legătura către aceasta continuă să fie în structura gc_link.

Vulnerabilitatea a apărut începând cu ramura 6.6 și a fost remediată în versiunile 6.6.9 și 6.7. Starea remedierii vulnerabilității în distribuții poate fi evaluată pe aceste pagini: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Printre distribuțiile care livrează pachete cu nucleul 6.6, putem remarca Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva și Manjaro; în alte distribuții, este posibil ca modificarea cu o eroare să fie backportată în pachete cu ramuri mai vechi de kernel (pentru de exemplu, în Debian se menționează că pachetul cu kernel 6.5.13 este vulnerabil, în timp ce modificarea problematică a apărut în ramura 6.6). Ca o soluție de securitate, puteți dezactiva IPv6 sau puteți seta parametrii „net.ipv0.conf.*.accept_ra” la 6.

Sursa: opennet.ru

Adauga un comentariu