„Linux“ branduolio IPv6 paketo pažeidžiamumas, leidžiantis nuotoliniu būdu vykdyti kodą

Buvo atskleista informacija apie „Linux“ branduolio tinklo krūvos pažeidžiamumą CVE-2023-6200), kuris tam tikromis aplinkybėmis leidžia užpuolikui iš vietinio tinklo pasiekti savo kodo vykdymą siunčiant specialiai sukurtą ICMPv6 paketą su RA (Router Advertisement) pranešimas, skirtas reklamuoti informaciją apie maršrutizatorių.

Pažeidžiamumu galima pasinaudoti tik iš vietinio tinklo ir jis atsiranda sistemose, kuriose įjungtas IPv6 palaikymas ir aktyvus sysctl parametras „net.ipv6.conf.<network_interface_name>.accept_ra“ (galima patikrinti naudojant komandą „sysctl net.ipv6.conf“ | grep accept_ra”), kuris pagal numatytuosius nustatymus yra išjungtas RHEL ir Ubuntu išorinėse tinklo sąsajose, bet įjungtas atgalinio ryšio sąsajai, leidžiančią ataką iš tos pačios sistemos.

Pažeidžiamumą sukelia lenktynių būsena, kai šiukšlių rinkėjas apdoroja pasenusius fib6_info įrašus, dėl kurių gali būti pasiekta jau atlaisvinta atminties sritis (nenaudojama po naudojimo). Kai gaunamas ICMPv6 paketas su maršrutizatoriaus reklaminiu pranešimu (RA, Router Advertisement), tinklo dėklas iškviečia funkciją ndisc_router_discovery(), kuri, jei RA pranešime yra informacijos apie maršruto trukmę, iškviečia funkciją fib6_set_expires() ir užpildo gc_link. struktūra. Norėdami išvalyti pasenusius įrašus, naudokite funkciją fib6_clean_expires(), kuri atskiria įrašą gc_link ir išvalo atmintį, kurią naudoja fib6_info struktūra. Šiuo atveju yra tam tikras momentas, kai fib6_info struktūros atmintis jau buvo atlaisvinta, tačiau nuoroda į ją ir toliau yra gc_link struktūroje.

Pažeidžiamumas atsirado nuo 6.6 šakos ir buvo ištaisytas 6.6.9 ir 6.7 versijose. Distributionų pažeidžiamumo taisymo būseną galima įvertinti šiuose puslapiuose: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Tarp platinimų, kurie pristato paketus su 6.6 branduoliu, galime pastebėti Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva ir Manjaro; kituose platinimuose gali būti, kad pakeitimas su klaida bus perkeltas į paketus su senesnėmis branduolio šakomis (skirta Pavyzdžiui, Debian'e minima, kad paketas su branduoliu 6.5.13 yra pažeidžiamas, o probleminis pakeitimas atsirado 6.6 šakoje). Kaip saugumo sprendimą galite išjungti IPv6 arba nustatyti „net.ipv0.conf.*.accept_ra“ parametrus į 6.

Šaltinis: opennet.ru

Добавить комментарий