Ang kahinaan sa IPv6 stack ng Linux kernel na nagbibigay-daan sa malayuang pagpapatupad ng code

Ang impormasyon ay isiniwalat tungkol sa kahinaan ng CVE-2023-6200) sa network stack ng Linux kernel, na, sa ilalim ng ilang mga pangyayari, ay nagpapahintulot sa isang attacker mula sa isang lokal na network na makamit ang pagpapatupad ng kanyang code sa pamamagitan ng pagpapadala ng isang espesyal na idinisenyong ICMPv6 packet na may isang mensahe ng RA (Router Advertisement) na naglalayong mag-advertise ng impormasyon tungkol sa router.

Magagamit lamang ang kahinaan mula sa lokal na network at lumilitaw sa mga system na may naka-enable na suporta sa IPv6 at ang sysctl parameter na β€œnet.ipv6.conf.<network_interface_name>.accept_ra” ay aktibo (maaaring suriin gamit ang command na β€œsysctl net.ipv6.conf | grep accept_ra”) , na hindi pinagana bilang default sa RHEL at Ubuntu para sa mga panlabas na interface ng network, ngunit pinagana para sa loopback na interface, na nagbibigay-daan sa pag-atake mula sa parehong system.

Ang kahinaan ay sanhi ng isang kundisyon ng lahi kapag ang tagakolekta ng basura ay nagpoproseso ng mga lipas na talaan ng fib6_info, na maaaring humantong sa pag-access sa isang nabakanteng lugar ng memorya (pagkatapos ng paggamit). Kapag tumatanggap ng ICMPv6 packet na may mensahe ng advertisement ng router (RA, Router Advertisement), tinatawagan ng network stack ang ndisc_router_discovery() function, na kung ang mensahe ng RA ay naglalaman ng impormasyon tungkol sa lifetime ng ruta, tatawagan ang fib6_set_expires() function at pupunuin ang gc_link istraktura. Upang linisin ang mga hindi na ginagamit na entry, gamitin ang fib6_clean_expires() function, na nag-alis ng entry sa gc_link at nag-clear ng memory na ginagamit ng fib6_info structure. Sa kasong ito, mayroong isang tiyak na sandali kapag ang memorya para sa istraktura ng fib6_info ay nalaya na, ngunit ang link dito ay patuloy na nasa istruktura ng gc_link.

Ang kahinaan ay lumitaw simula sa branch 6.6 at naayos sa mga bersyon 6.6.9 at 6.7. Ang katayuan ng pag-aayos ng kahinaan sa mga pamamahagi ay maaaring masuri sa mga pahinang ito: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Kabilang sa mga distribusyon na nagpapadala ng mga pakete na may 6.6 kernel, mapapansin natin ang Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva at Manjaro; sa iba pang mga distribusyon, posible na ang pagbabago na may error ay nai-backport sa mga pakete na may mas lumang mga sanga ng kernel (para sa halimbawa, sa Debian nabanggit na ang package na may kernel 6.5.13 ay vulnerable, habang ang problemang pagbabago ay lumitaw sa 6.6 branch). Bilang solusyon sa seguridad, maaari mong i-disable ang IPv6 o itakda ang mga parameter na β€œnet.ipv0.conf.*.accept_ra” sa 6.

Pinagmulan: opennet.ru

Magdagdag ng komento