In the Linux kernel, the following vulnerability has been resolved:
ipv6: avoid overflows in ip6_datagram_send_ctl()
Yiming Qian reported : <quote> I believe I found a locally triggerable kernel bug in the IPv6 sendmsg ancillary-data path that can panic the kernel via `skb_under_panic()` (local DoS).
The core issue is a mismatch between:
- a 16-bit length accumulator (`struct ipv6_txoptions::opt_flen`, type `__u16`) and - a pointer to the *last* provided destination-options header (`opt->dst1opt`)
when multiple `IPV6_DSTOPTS` control messages (cmsgs) are provided.
- `include/net/ipv6.h`: - `struct ipv6_txoptions::opt_flen` is `__u16` (wrap possible). (lines 291-307, especially 298) - `net/ipv6/datagram.c:ip6_datagram_send_ctl()`: - Accepts repeated `IPV6_DSTOPTS` and accumulates into `opt_flen` without rejecting duplicates. (lines 909-933) - `net/ipv6/ip6_output.c:__ip6_append_data()`: - Uses `opt->opt_flen + opt->opt_nflen` to compute header sizes/headroom decisions. (lines 1448-1466, especially 1463-1465) - `net/ipv6/ip6_output.c:__ip6_make_skb()`: - Calls `ipv6_push_frag_opts()` if `opt->opt_flen` is non-zero. (lines 1930-1934) - `net/ipv6/exthdrs.c:ipv6_push_frag_opts()` / `ipv6_push_exthdr()`: - Push size comes from `ipv6_optlen(opt->dst1opt)` (based on the pointed-to header). (lines 1179-1185 and 1206-1211)
1. `opt_flen` is a 16-bit accumulator:
- `include/net/ipv6.h:298` defines `__u16 opt_flen; /* after fragment hdr */`.
2. `ip6_datagram_send_ctl()` accepts *repeated* `IPV6_DSTOPTS` cmsgs and increments `opt_flen` each time:
- In `net/ipv6/datagram.c:909-933`, for `IPV6_DSTOPTS`: - It computes `len = ((hdr->hdrlen + 1) << 3);` - It checks `CAP_NET_RAW` using `ns_capable(net->user_ns, CAP_NET_RAW)`. (line 922) - Then it does: - `opt->opt_flen += len;` (line 927) - `opt->dst1opt = hdr;` (line 928)
There is no duplicate rejection here (unlike the legacy `IPV6_2292DSTOPTS` path which rejects duplicates at `net/ipv6/datagram.c:901-904`).
If enough large `IPV6_DSTOPTS` cmsgs are provided, `opt_flen` wraps while `dst1opt` still points to a large (2048-byte) destination-options header.
In the attached PoC (`poc.c`):
- 32 cmsgs with `hdrlen=255` => `len = (255+1)*8 = 2048` - 1 cmsg with `hdrlen=0` => `len = 8` - Total increment: `32*2048 + 8 = 65544`, so `(__u16)opt_flen == 8` - The last cmsg is 2048 bytes, so `dst1opt` points to a 2048-byte header.
3. The transmit path sizes headers using the wrapped `opt_flen`:
- In `net/ipv6/ip6_output.c:1463-1465`: - `headersize = sizeof(struct ipv6hdr) + (opt ? opt->opt_flen + opt->opt_nflen : 0) + ...;`
With wrapped `opt_flen`, `headersize`/headroom decisions underestimate what will be pushed later.
4. When building the final skb, the actual push length comes from `dst1opt` and is not limited by wrapped `opt_flen`:
- In `net/ipv6/ip6_output.c:1930-1934`: - `if (opt->opt_flen) proto = ipv6_push_frag_opts(skb, opt, proto);` - In `net/ipv6/exthdrs.c:1206-1211`, `ipv6_push_frag_opts()` pushes `dst1opt` via `ipv6_push_exthdr()`. - In `net/ipv6/exthdrs.c:1179-1184`, `ipv6_push_exthdr()` does: - `skb_push(skb, ipv6_optlen(opt));` - `memcpy(h, opt, ipv6_optlen(opt));`
With insufficient headroom, `skb_push()` underflows and triggers `skb_under_panic()` -> `BUG()`:
- `net/core/skbuff.c:2669-2675` (`skb_push()` calls `skb_under_panic()`) - `net/core/skbuff.c:207-214` (`skb_panic()` ends in `BUG()`)
- The `IPV6_DSTOPTS` cmsg path requires `CAP_NET_RAW` in the target netns user namespace (`ns_capable(net->user_ns, CAP_NET_RAW)`). - Root (or any task with `CAP_NET_RAW`) can trigger this without user namespaces. - An unprivileged `uid=1000` user can trigger this if unprivileged user namespaces are enabled and it can create a userns+netns to obtain namespaced `CAP_NET_RAW` (the attached PoC does this).
- Local denial of service: kernel BUG/panic (system crash). - ---truncated---
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade perf-debuginfoUpgrade python-perfUpgrade python-perf-debuginfoUpgrade kernel-debuginfoUpgrade perfUpgrade bpftool-debuginfoUpgrade kernel-headersUpgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-5.15.204-143.230Upgrade kernel-toolsUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-develUpgrade bpftoolUpgrade kernel-livepatch-5.10.253-252.1015 | May 20, 2026 | May 20, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel6.18-tools-debuginfoUpgrade python3-perfUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.18-tools-develUpgrade python3-perf6.18Upgrade kernel-develUpgrade python3-perf6.18-debuginfoUpgrade kernel6.12-tools-develUpgrade kernel-debuginfoUpgrade bpftool6.18-debuginfoUpgrade kernel6.18-develUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.18Upgrade kernel6.18-toolsUpgrade kernel6.12-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-develUpgrade kernel6.12-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel6.12-toolsUpgrade perf6.18Upgrade bpftool6.12Upgrade kernel-libbpf-staticUpgrade kernel-livepatch-6.12.83-113.160Upgrade kernel6.18-modules-extraUpgrade kernel6.18-debuginfoUpgrade kernel6.18-headersUpgrade kernel-libbpf-develUpgrade python3-perf6.12Upgrade bpftoolUpgrade kernelUpgrade python3-perf6.12-debuginfoUpgrade perf6.12-debuginfoUpgrade kernel-modules-extraUpgrade kernel-toolsUpgrade kernel-libbpf-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel6.12-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-6.1.168-202.320Upgrade bpftool-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade perf6.18-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12Upgrade perfUpgrade kernel6.12-headersUpgrade bpftool6.18Upgrade perf6.12Upgrade kernel6.18-modules-extra-commonUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel-headersUpgrade bpftool6.12-debuginfoUpgrade kernel-livepatch-6.18.25-52.107Upgrade python3-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel6.12-debuginfo-common-x86_64 | May 19, 2026 | Apr 13, 2026 |
| Debian | — | Upgrade linux-6.1Upgrade linux | May 3, 2026 | May 3, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Apr 13, 2026 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-azure-lts-22.04Upgrade linux-image-generic-lpae-5.15Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-aws-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-azure-fde-6.8Upgrade linux-image-5.15.0-1117-azureUpgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-gcp-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-kvmUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-fdeUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-64k-5.15Upgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-xilinxUpgrade linux-image-virtual-5.15Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-oracle-64kUpgrade linux-image-oem-20.04Upgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-gkeop-5.15Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-raspi-5.15Upgrade linux-image-oem-20.04dUpgrade linux-image-ibm-6.8Upgrade linux-image-generic-64k-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-gcpUpgrade linux-image-azure-fips-6.8Upgrade linux-image-azure-5.15Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-virtualUpgrade linux-image-6.8.0-136-genericUpgrade linux-image-raspi-realtimeUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-oracleUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-laptop-23.10Upgrade linux-image-azure-cvmUpgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-oracle-6.8Upgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-realtime-5.15Upgrade linux-image-generic-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-aws-fips-5.15Upgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-186-fipsUpgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-realtime-6.8.1Upgrade linux-image-oem-22.04bUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-gke-64k-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-generic-5.15Upgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-gkeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-intelUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-gkeopUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-raspiUpgrade linux-image-gke-6.8Upgrade linux-image-lowlatency-5.15Upgrade linux-image-lowlatency-6.8Upgrade linux-image-gke-5.15Upgrade linux-image-nvidia-tegraUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gcp-fipsUpgrade linux-image-nvidia-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-azureUpgrade linux-image-gkeop-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-azure-fips-5.15Upgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-136-fipsUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-fipsUpgrade linux-image-kvm-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-fipsUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-aws-64kUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-ibm-5.15Upgrade linux-image-generic-64k-5.15Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-azure-6.8Upgrade linux-image-oracle-5.15Upgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-genericUpgrade linux-image-azure-fde-5.15Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-azure-lts-24.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-nvidia-5.15Upgrade linux-image-oem-20.04b | May 25, 2026 | Apr 13, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Apr 13, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub