CVE-2026-46260
High · 7.8CVSS
7.8
EPSS
0.1%
Published
Jun 3, 2026
CISA due date
—
Cloudanix analysis
A flaw in Linux’s IPv6 routing code could let someone who already has limited access to a machine crash it or potentially gain more control.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a Linux kernel memory-corruption vulnerability in the IPv6 routing code. When an IPv6 route is added through rtnetlink using an RTA_NH_ID next-hop identifier, the kernel may create a fib6_info object without an embedded trailing fib6_nh structure. The vulnerable path in fib6_add_rt2node() can then read from fib6_nh before confirming that the route uses a separate nexthop object, causing an out-of-bounds slab read. In practical terms, a local user able to issue relevant network-route netlink operations may be able to crash the kernel, disclose adjacent kernel memory, or potentially use the memory-safety condition as part of a local privilege-escalation chain depending on kernel configuration, hardening, and exploit development.
Why it matters to the business
Successful exploitation can affect host stability and confidentiality by causing kernel crashes, service outages, or possible exposure of sensitive kernel memory. Because the vulnerable component is in the Linux kernel, affected systems may include servers, containers hosts, appliances, network infrastructure, and embedded Linux platforms that run vulnerable kernel versions with IPv6 routing enabled. The issue is not currently listed in CISA KEV, is not reported as ransomware-used, has very low EPSS, and has no known public exploit maturity in the provided data, so broad internet-scale exploitation is unlikely; however, local attackers or compromised workloads can still use kernel vulnerabilities to increase impact after initial access.
How an attack unfolds
An attacker first needs local code execution or access to a context that can send route-management messages to the kernel, typically requiring CAP_NET_ADMIN or an environment where that capability can be obtained, such as a permissive container or user/network namespace configuration. The attacker crafts an RTM_NEWROUTE rtnetlink message for IPv6 that uses RTA_NH_ID, causing the kernel to allocate a fib6_info structure without the embedded fib6_nh layout expected by part of the route insertion logic. During route insertion, fib6_add_rt2node() evaluates existing route entries and incorrectly reads iter->fib6_nh before checking whether the route instead references a separate nexthop object. That read crosses the bounds of the allocated object. A simple exploit may trigger a kernel warning or panic, resulting in denial of service. More advanced exploitation would attempt to shape nearby slab allocations to convert the out-of-bounds read into kernel information disclosure or a building block for bypassing kernel memory protections, but no public exploit maturity is indicated in the provided data.
How to fix it
Upgrade affected Linux kernels to a vendor release that includes the upstream fix for the IPv6 fib6_add_rt2node() bounds-checking issue. Because no exact fixed package versions were provided, use the kernel advisory from the operating-system or appliance vendor and install the first kernel version that contains the patch changing the logic to check the nexthop pointer before accessing fib6_nh. Reboot into the patched kernel after installation; merely installing the package is not sufficient if the old kernel remains running. As interim mitigation, reduce exposure by restricting CAP_NET_ADMIN, disabling unprivileged user namespaces where operationally feasible, limiting container privileges, avoiding host-network or privileged containers unless required, and enforcing seccomp/AppArmor/SELinux profiles that prevent untrusted workloads from issuing network-administration operations. If IPv6 is not used, disabling IPv6 may reduce the reachable attack surface, but it should not be treated as a complete substitute for patching.
How to confirm the fix worked
Confirm the currently running kernel version, not just the installed package version, using commands such as uname -r and the distribution package manager. Verify that the installed vendor kernel changelog or security advisory includes the fix for the IPv6 fib6_add_rt2node() out-of-bounds access involving RTA_NH_ID. After reboot, ensure the patched kernel is active and older vulnerable kernels are not selected by default in the bootloader. Validate exposure by reviewing whether untrusted users, containers, or services have CAP_NET_ADMIN or can create user/network namespaces. Where safe in a non-production test environment, exercise IPv6 route addition with nexthop IDs and verify the system does not emit kernel KASAN, BUG, general protection fault, or panic messages referencing fib6_add_rt2node().
Typical attack path
- Gain local execution on a Linux system running a vulnerable kernel.
- Obtain or abuse permission to manage network routes, commonly CAP_NET_ADMIN or equivalent capability inside a network namespace.
- Create or identify IPv6 routing state involving nexthop objects.
- Send a crafted rtnetlink RTM_NEWROUTE message that adds an IPv6 route using RTA_NH_ID.
- Trigger fib6_add_rt2node() while it processes route insertion and evaluates existing route entries.
- Cause an out-of-bounds slab read in kernel memory.
- Use the condition to crash the kernel or, with additional exploit work, attempt information disclosure or privilege escalation.
How to detect it
Look for evidence of prior exploitation in kernel logs, system journals, crash dumps, audit logs, and container runtime telemetry. Primary artifacts are kernel crash reports, KASAN reports, slab out-of-bounds messages, oops/panic events, or call traces containing fib6_add_rt2node(), fib6_add(), ip6_route_add(), inet6_rtm_newroute(), rtnetlink_rcv_msg(), or netlink_sendmsg(). On systems with auditd or eBPF telemetry, review route-management activity involving NETLINK_ROUTE, RTM_NEWROUTE, IPv6 route additions, and RTA_NH_ID-like nexthop usage, especially when initiated by unexpected users, containers, or service accounts. Also inspect recent privilege changes or container configurations granting CAP_NET_ADMIN. Kernel memory-corruption exploitation may leave no durable file-based artifact, so absence of IOCs does not prove absence of exploitation; prioritize correlation between anomalous route changes, local user activity, container privilege misuse, and kernel fault timestamps.
- BUG: KASAN: slab-out-of-bounds in fib6_add_rt2node
- slab-out-of-bounds in fib6_add_rt2node
- fib6_add_rt2node+
- net/ipv6/ip6_fib.c:1142
- fib6_add_rt2node_nh
- fib6_add+
- ip6_route_add+
- inet6_rtm_newroute+
- rtnetlink_rcv_msg+
- netlink_sendmsg+
- __x64_sys_sendmsg+
- RTM_NEWROUTE
- RTA_NH_ID
- NETLINK_ROUTE
- CAP_NET_ADMIN
What your security team should do
- Patch Linux kernels through the appropriate vendor channel and reboot into the fixed kernel, prioritizing multi-user systems, container hosts, CI runners, bastion systems, and shared compute platforms.
- Inventory workloads and hosts where untrusted users or containers have CAP_NET_ADMIN, privileged-container access, host networking, or permission to create network namespaces.
- Temporarily remove CAP_NET_ADMIN from containers and services that do not strictly require it.
- Disable or restrict unprivileged user namespaces where this is compatible with business requirements.
- Monitor kernel logs for crashes or sanitizer reports referencing fib6_add_rt2node, ip6_fib.c, inet6_rtm_newroute, or IPv6 route creation through rtnetlink.
- Review audit logs for unusual route-management activity by non-administrative users or application service accounts.
- Because this is not KEV-listed, not ransomware-associated in the provided data, and has low EPSS, handle as a high-impact local kernel hardening and patching priority rather than an emergency internet-exposed remote exploitation event.
The record
In the Linux kernel, the following vulnerability has been resolved: ipv6: Fix out-of-bound access in fib6_add_rt2node(). syzbot reported out-of-bound read in fib6_add_rt2node(). [0] When IPv6 route is created with RTA_NH_ID, struct fib6_info does not have the trailing struct fib6_nh. The cited commit started to check !iter->fib6_nh->fib_nh_gw_family to ensure that rt6_qualify_for_ecmp() will return false for iter. If iter->nh is not NULL, rt6_qualify_for_ecmp() returns false anyway. Let's check iter->nh before reading iter->fib6_nh and avoid OOB read. [0]: BUG: KASAN: slab-out-of-bounds in fib6_add_rt2node+0x349c/0x3500 net/ipv6/ip6_fib.c:1142 Read of size 1 at addr ffff8880384ba6de by task syz.0.18/5500 CPU: 0 UID: 0 PID: 5500 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0xba/0x230 mm/kasan/report.c:482 kasan_report+0x117/0x150 mm/kasan/report.c:595 fib6_add_rt2node+0x349c/0x3500 net/ipv6/ip6_fib.c:1142 fib6_add_rt2node_nh net/ipv6/ip6_fib.c:1363 [inline] fib6_add+0x910/0x18c0 net/ipv6/ip6_fib.c:1531 __ip6_ins_rt net/ipv6/route.c:1351 [inline] ip6_route_add+0xde/0x1b0 net/ipv6/route.c:3957 inet6_rtm_newroute+0x268/0x19e0 net/ipv6/route.c:5660 rtnetlink_rcv_msg+0x7d5/0xbe0 net/core/rtnetlink.c:6958 netlink_rcv_skb+0x232/0x4b0 net/netlink/af_netlink.c:2550 netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline] netlink_unicast+0x80f/0x9b0 net/netlink/af_netlink.c:1344 netlink_sendmsg+0x813/0xb40 net/netlink/af_netlink.c:1894 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg net/socket.c:742 [inline] ____sys_sendmsg+0xa68/0xad0 net/socket.c:2592 ___sys_sendmsg+0x2a5/0x360 net/socket.c:2646 __sys_sendmsg net/socket.c:2678 [inline] __do_sys_sendmsg net/socket.c:2683 [inline] __se_sys_sendmsg net/socket.c:2681 [inline] __x64_sys_sendmsg+0x1bd/0x2a0 net/socket.c:2681 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f9316b9aeb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffd8809b678 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00007f9316e15fa0 RCX: 00007f9316b9aeb9 RDX: 0000000000000000 RSI: 0000200000004380 RDI: 0000000000000003 RBP: 00007f9316c08c1f R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f9316e15fac R14: 00007f9316e15fa0 R15: 00007f9316e15fa0 </TASK> Allocated by task 5499: kasan_save_stack mm/kasan/common.c:57 [inline] kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 poison_kmalloc_redzone mm/kasan/common.c:398 [inline] __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:415 kasan_kmalloc include/linux/kasan.h:263 [inline] __do_kmalloc_node mm/slub.c:5657 [inline] __kmalloc_noprof+0x40c/0x7e0 mm/slub.c:5669 kmalloc_noprof include/linux/slab.h:961 [inline] kzalloc_noprof include/linux/slab.h:1094 [inline] fib6_info_alloc+0x30/0xf0 net/ipv6/ip6_fib.c:155 ip6_route_info_create+0x142/0x860 net/ipv6/route.c:3820 ip6_route_add+0x49/0x1b0 net/ipv6/route.c:3949 inet6_rtm_newroute+0x268/0x19e0 net/ipv6/route.c:5660 rtnetlink_rcv_msg+0x7d5/0xbe0 net/core/rtnetlink.c:6958 netlink_rcv_skb+0x232/0x4b0 net/netlink/af_netlink.c:2550 netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline] netlink_unicast+0x80f/0x9b0 net/netlink/af_netlink.c:1344 netlink_sendmsg+0x813/0xb40 net/netlink/af_netlink.c:1894 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg net/socket.c:742 [inline] ____sys_sendmsg+0xa68/0xad0 net/socket.c:2592 ___sys_s ---truncated---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-92824 A flaw was found in libmodulemd. CWE-125
- CVE-2026-114038 A flaw was found in device-mapper-multipath. CWE-125
- CVE-2026-112896 Pillow is a Python imaging library. CWE-125
- CVE-2026-112278 rdesktop through 1.9.0 contains a heap out-of-bounds read vulnerability in… CWE-125
- CVE-2026-112273 libtins through 4.6 contains a heap out-of-bounds read vulnerability in DNS::compose_name… CWE-125
- CVE-2026-112073 A vulnerability was identified in Tencent ncnn up to 44b02dabdcf97499281a4692ebd65bad73dc… CWE-125
- CVE-2026-112020 LodePNG through 20261006 contains a heap out-of-bounds read vulnerability in… CWE-125
- CVE-2026-88842 A flaw was found in BusyBox dpkg. CWE-125