KernelScan.io

CRITICAL

bridge ND Options OOB

CVE-2026-31682

CVSS 9.1 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

KernelScan AI7.9HIGH

01

In the Linux kernel, the following vulnerability has been resolved: bridge: br_nd_send: linearize skb before parsing ND options br_nd_send() parses neighbour discovery options from ns->opt[] and assumes that these options are in the linear part of request. Its callers only guarantee that the ICMPv6 header and target address are available, so the option area can still be non-linear. Parsing ns->opt[] in that case can access data past the linear buffer. Linearize request before option parsing and derive ns from the linear network header.

02

Engine v0.2.0

Risk summary

Network attackers can trigger an out-of-bounds read in the Linux bridge's IPv6 neighbor discovery processing by sending crafted packets with non-linear option data. This leaks limited adjacent kernel memory (potentially including slab pointers that weaken KASLR) and can cause a kernel panic when the read reaches unmapped pages.

Affectednet/bridge/br_arp_nd_proxy.c (bridge)

Vulnerability analysis

The vulnerability occurs in br_nd_send(), which parses IPv6 neighbor discovery options from ns->opt[] assuming they reside in the linear part of the socket buffer. Callers only guarantee that the ICMPv6 header and target address are linear, leaving the option area potentially in non-linear (paged) fragments. When the code accesses ns->opt[] without linearizing the skb first, it reads past the linear buffer boundary into adjacent kernel memory. The fix linearizes the entire request buffer before option parsing and re-derives the ns pointer from the now-linear network header, ensuring all accessed data is within bounds.

03

BranchFixed inPatch commit
5.105.10.253c68433fd291c
5.155.15.2034f397b950c91
6.16.1.168bd91ec85aa4c
6.126.12.812ba4caba423e
6.186.18.229c55e41c73af
6.196.19.123a30f6469b05
6.66.6.134658261898130
mainline7.0a01aee7cafc5