PT-2026-90277 · Linux · Linux
CVE-2026-89561
·
Published
2026-09-11
·
Updated
2026-09-11
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
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:
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
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.
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux