Ad

CVE-2026-89561

HIGH CVSS 3.1: 7,5 EPSS 0.44%
Обновлено 21 сентября 2026
Linux
Параметр Значение
CVSS 7,5 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: ipv6: rpl: исправлено разыменование NULL для idev в ipv6_rpl_srh_rcv(). ipv6_rpl_srh_rcv() разыменовывает idev из __in6_dev_get() без NULL проверьте при чтении idev->cnf.rpl_seg_enabled. Когда MTU устройства падает ниже IPV6_MIN_MTU, addrconf_ifdown() очищается. dev->ip6_ptr через RCU_INIT_POINTER(). Пакет, прошедший idev проверка ip6_rcv_core() может затем достичь ipv6_rpl_srh_rcv() с помощью dev->ip6_ptr уже NULL.

Воспроизводится путем заполнения принимающего интерфейса трафиком ping6 во время изменение MTU между 1500 и 1200: ОШИБКА: KASAN: null-ptr-deref в ipv6_rpl_srh_rcv+0xb3/0x1070. Чтение размера 4 по адресу 00000000000006b4 с помощью задачи ping6/394. ЦП: 2 UID: 0 PID: 394 Связь: ping6 Не испорчено 7.2.0-rc7-micro-vm-dev-00095-g24ef02f934ee #240 PREEMPT(полный) Отслеживание вызова: <IRQ> kasan_report+0xc6/0x100 ipv6_rpl_srh_rcv+0xb3/0x1070 ip6_protocol_deliver_rcu+0x759/0x9a0 ip6_input_finish+0xa8/0x1b0 ip6_input+0xe1/0x490 ipv6_rcv+0x33d/0x460 __netif_receive_skb_one_core+0xd6/0x130 process_backlog+0x2cc/0xa00 __napi_poll.constprop.0+0x56/0x270 net_rx_action+0x327/0x730 handle_softirqs+0x11e/0x630 do_softirq+0xb3/0xf0 </IRQ> И ipv6_rpl_srh_rcv(), и ipv6_srh_rcv() вызываются только из ipv6_rthdr_rcv(), который уже имеет поиск idev.

Исправьте разыменование NULL на пути RPL, проверив idev в ipv6_rthdr_rcv(), прежде чем вызывать любую функцию. Вызываемые абоненты воспринимают idev как аргумент и больше не вызывайте __in6_dev_get(), поэтому пакет теперь сбросился в одном месте, с SKB_DROP_REASON_IPV6DISABLED на обоих путях.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: ipv6: rpl: fix NULL dereference of idev in ipv6_rpl_srh_rcv() ipv6_rpl_srh_rcv() dereferences idev from __in6_dev_get() without a NULL check when reading idev->cnf.rpl_seg_enabled. When the device's MTU drops below IPV6_MIN_MTU, addrconf_ifdown() clears dev->ip6_ptr through RCU_INIT_POINTER(). A packet that passed the idev check in ip6_rcv_core() can then reach ipv6_rpl_srh_rcv() with dev->ip6_ptr already NULL. Reproduced by flooding the receiving interface with ping6 traffic while flapping its MTU between 1500 and 1200: BUG: KASAN: null-ptr-deref in ipv6_rpl_srh_rcv+0xb3/0x1070 Read of size 4 at addr 00000000000006b4 by task ping6/394 CPU: 2 UID: 0 PID: 394 Comm: ping6 Not tainted 7.2.0-rc7-micro-vm-dev-00095-g24ef02f934ee #240 PREEMPT(full) Call Trace: <IRQ> kasan_report+0xc6/0x100 ipv6_rpl_srh_rcv+0xb3/0x1070 ip6_protocol_deliver_rcu+0x759/0x9a0 ip6_input_finish+0xa8/0x1b0 ip6_input+0xe1/0x490 ipv6_rcv+0x33d/0x460 __netif_receive_skb_one_core+0xd6/0x130 process_backlog+0x2cc/0xa00 __napi_poll.constprop.0+0x56/0x270 net_rx_action+0x327/0x730 handle_softirqs+0x11e/0x630 do_softirq+0xb3/0xf0 </IRQ> Both ipv6_rpl_srh_rcv() and ipv6_srh_rcv() are called only from ipv6_rthdr_rcv(), which already has an idev lookup. Fix the NULL dereference on the RPL path by checking idev in ipv6_rthdr_rcv(), before it calls either function. The callees take idev as an argument and no longer call __in6_dev_get(), so the packet is now dropped in one place, with SKB_DROP_REASON_IPV6DISABLED on both paths.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1