Ranljivost v skladu IPv6 jedra Linuxa, ki omogoča oddaljeno izvajanje kode

Razkrite so bile informacije o ranljivosti CVE-2023-6200) v omrežnem skladu jedra Linuxa, ki v določenih okoliščinah omogoča napadalcu iz lokalnega omrežja, da doseže izvedbo svoje kode s pošiljanjem posebej zasnovanega paketa ICMPv6 z sporočilo RA (Router Advertisement), namenjeno oglaševanju informacij o usmerjevalniku.

Ranljivost je mogoče izkoristiti samo iz lokalnega omrežja in se pojavi v sistemih z omogočeno podporo za IPv6 in aktivnim sysctl parametrom “net.ipv6.conf.<ime_omrežnega_vmesnika>.accept_ra” (lahko preverite z ukazom “sysctl net.ipv6.conf” | grep accept_ra”), ki je privzeto onemogočen v RHEL in Ubuntu za zunanje omrežne vmesnike, vendar je omogočen za povratni vmesnik, ki omogoča napad iz istega sistema.

Ranljivost je posledica dirkalnega stanja, ko zbiralnik smeti obdeluje zastarele zapise fib6_info, kar lahko vodi do dostopa do že sproščenega pomnilniškega območja (uporaba po brezplačnem). Ko prejme paket ICMPv6 z oglasnim sporočilom usmerjevalnika (RA, Router Advertisement), omrežni sklad pokliče funkcijo ndisc_router_discovery(), ki, če sporočilo RA vsebuje informacije o življenjski dobi poti, pokliče funkcijo fib6_set_expires() in zapolni gc_link struktura. Za čiščenje zastarelih vnosov uporabite funkcijo fib6_clean_expires(), ki odklopi vnos v gc_link in počisti pomnilnik, ki ga uporablja struktura fib6_info. V tem primeru obstaja določen trenutek, ko je pomnilnik za strukturo fib6_info že sproščen, vendar je povezava do nje še vedno v strukturi gc_link.

Ranljivost se je pojavila od veje 6.6 in je bila odpravljena v različicah 6.6.9 in 6.7. Stanje odpravljanja ranljivosti v distribucijah je mogoče oceniti na teh straneh: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Med distribucijami, ki pošiljajo pakete z jedrom 6.6, lahko opazimo Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva in Manjaro; v drugih distribucijah je možno, da je sprememba z napako prenesena nazaj v pakete s starejšimi vejami jedra (npr. na primer, v Debianu je omenjeno, da je paket z jedrom 6.5.13 ranljiv, medtem ko se je problematična sprememba pojavila v veji 6.6). Kot varnostno rešitev lahko onemogočite IPv6 ali nastavite parametre »net.ipv0.conf.*.accept_ra« na 6.

Vir: opennet.ru

Dodaj komentar