HIGH Introduced in 5.18
bonding NdDetect OOB
CVE-2026-98089
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
01Description
In the Linux kernel, the following vulnerability has been resolved: bonding: alb: fix uninitialized transport header access in alb_determine_nd() alb_determine_nd() uses icmp6_hdr(skb) to inspect ICMPv6 headers. However, in xmit paths (e.g. packets sent via AF_PACKET / raw sockets or forwarded packets), skb->transport_header is not guaranteed to be initialized. While pskb_network_may_pull() ensures the packet data is linear starting from the network header, it does not set or adjust the transport header offset. Dereferencing icmp6_hdr(skb) can therefore access out-of-bounds memory. Fetch the icmp6hdr directly after ipv6hdr following pskb_network_may_pull(), and reload ipv6hdr in case pskb_may_pull() reallocated skb->head. Also remove the unused bond argument from alb_determine_nd().
02KernelScan AI Analysis
Risk summary
Systems using network bonding in balance-alb or balance-tlb mode with IPv6 enabled are at risk. An attacker can trigger an out-of-bounds memory read by sending IPv6 packets through a bond interface, potentially causing a kernel crash. The vulnerability is reachable both from the network via forwarded traffic and locally via raw sockets.
Vulnerability analysis
The bonding driver's transmit path for ALB mode inspects IPv6 Neighbor Discovery packets by reading the ICMPv6 header at a packet offset that may not have been set for packets sent via raw sockets or forwarded through the system. When this offset is uninitialized, the resulting memory read can access data beyond the valid packet buffer. The fix derives the ICMPv6 header position directly from the IPv6 header after verifying enough packet data is available, instead of relying on the potentially unset offset. The vulnerable path is reached whenever an IPv6 packet is transmitted through a network bond interface configured in balance-alb or balance-tlb mode — either from a local process with raw socket access or from network traffic forwarded through the bond.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.1 | 5.18 | 6.1.189 | 862c8eb69476 |
| 6.6 | 5.18 | 6.6.158 | 7adb1bf25b0c |
| 6.12 | 5.18 | 6.12.111 | e39cf90bd856 |
| 6.18 | 5.18 | 6.18.53 | 27314f96d29b |
| 7.2 | 5.18 | 7.2.7 | 3b178894931a |
| mainline | 5.18 | 7.3-rc2 | 70f3995830d3 |
| cip/6.12 | 5.18 | 6.12.111-cip32 | e39cf90bd856 |