CVE-2026-98101 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
ipv6: mcast: использование обновлений RCU по принципу «копируй при записи» (copy-on-write) в функции ip6_mc_source()
Список pmc->sfllist считывается без блокировки под rcu_read_lock() функцией inet6_mc_check() во время приема пакетов в путях получения мультикаста UDP и RAW.
Функция ip6_mc_source() изменяла поля psl->sl_addr и psl->sl_count на месте (in-place) при добавлении или удалении фильтра источника. Кроме того, при расширении буфера фильтра новый указатель newpsl публиковался через rcu_assign_pointer() до записи нового адреса в массив.
Поскольку 16-байтовые операции записи для структуры in6_addr не являются атомарными, а сдвиг элементов массива не синхронизирован с читателями RCU, одновременные читатели в функции inet6_mc_check() могли считывать поврежденные (torn) адреса IPv6 или наблюдать дублирующиеся/пропущенные записи источников.
Исправление заключается в переходе ip6_mc_source() на обновления RCU по принципу «копируй при записи»: выделение и полная заполнение newpsl перед его публикацией через rcu_assign_pointer(), а также освобождение старого фильтра с помощью kfree_rcu(), что соответствует реализации ip6_mc_msfilter().
Также удален больше не используемый макрос IP6_SFBLOCK.
VulDB is the best source for vulnerability data and more expert information about this specific topic.