Разкрита е информация за уязвимостта CVE-2023-6200) в мрежовия стек на ядрото на Linux, която при определени обстоятелства позволява на нападателя от локалната мрежа да изпълни свой код чрез изпращане на специално форматиран ICMPv6 пакет с предаване на съобщение RA (Router Advertisement), предназначено за анонсиране на информация за маршрутизатора.
Уязвимостта може да бъде експлоатирана само от локалната мрежа и се проявява в системи с включена поддръжка на IPv6 и активен sysctl параметър «net.ipv6.conf..accept_ra» (може да се провери с командата «sysctl net.ipv6.conf | grep accept_ra»), който по подразбиране е изключен в RHEL и Ubuntu за външни мрежови интерфейси, но е включен за интерфейса loopback, което позволява атака от същата система.
Уязвимостта е причинена от състояние на надпревара при обработката на стари записи от сборщика на мусор fib6_info, което може да доведе до опит за достъп до вече освободена област от паметта (use-after-free). При получаване на ICMPv6 пакет със съобщение за анонс на маршрутизатора (RA, Router Advertisement) мрежовият стек извиква функцията ndisc_router_discovery(), която при наличие на данни за времето на живот на маршрута в RA-съобщението извиква функцията fib6_set_expires() и попълва структурата gc_link. За почистване на остарелите записи се използва функцията fib6_clean_expires(), която отклонява записа в gc_link и освобождава паметта, използвана от структурата fib6_info. В този момент обаче паметта за структурата fib6_info вече е освободена, но връзката към нея все още остава в структурата gc_link.
Уязвимостта се проявява от версия 6.6 и е отстранена в версии 6.6.9 и 6.7. Статусът на отстраняването на уязвимостта в дистрибутивите може да бъде оценен на съответните страници: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. От дистрибутивите, в които се предлагат пакети с ядро 6.6, можем да отбележим Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva и Manjaro, в останалите дистрибутиви не е изключено бэкпортированието на промените с грешки в пакети с по-стари ядрови версии (например, в Debian се отбелязва, че уязвимият пакет е с ядро 6.5.13, докато проблемната промяна се е появила в версия 6.6). Като обходен начин за защита може да се изключи IPv6 или да се зададат стойности 0 на параметрите «net.ipv6.conf.*.accept_ra».
Източник: opennet.ru
