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 kernel-livepatch-5.15.204-143.230Upgrade kernel-toolsUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade kernel-develUpgrade kernel-livepatch-5.10.253-252.1015Upgrade python-perfUpgrade kernel-debuginfoUpgrade python-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel-headersUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfo | May 20, 2026 | May 20, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel6.18-tools-develUpgrade kernel6.18-debuginfoUpgrade kernel6.18-headersUpgrade kernel6.18-tools-debuginfoUpgrade kernelUpgrade kernel-tools-develUpgrade kernel6.12-debuginfoUpgrade perf6.18Upgrade python3-perfUpgrade kernel-libbpf-staticUpgrade kernel-livepatch-6.12.83-113.160Upgrade kernel-libbpf-develUpgrade kernel6.12-develUpgrade kernel6.18Upgrade kernel6.12-toolsUpgrade python3-perf6.18Upgrade bpftoolUpgrade perf6.12-debuginfoUpgrade kernel6.18-debuginfo-common-x86_64Upgrade python3-perf6.12-debuginfoUpgrade kernel6.12-tools-debuginfoUpgrade kernel6.18-modules-extraUpgrade python3-perf6.12Upgrade bpftool6.18-debuginfoUpgrade kernel6.18-develUpgrade bpftool6.12Upgrade kernel-develUpgrade kernel-modules-extra-commonUpgrade kernel6.18-toolsUpgrade kernel-debuginfoUpgrade kernel6.12-tools-develUpgrade kernel-debuginfo-common-x86_64Upgrade python3-perf6.18-debuginfoUpgrade kernel6.12-headersUpgrade kernel-livepatch-6.18.25-52.107Upgrade kernel-libbpf-debuginfoUpgrade kernel6.12Upgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel-livepatch-6.1.168-202.320Upgrade kernel-modules-extraUpgrade kernel6.18-modules-extra-commonUpgrade bpftool6.12-debuginfoUpgrade perf6.12Upgrade kernel6.12-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel6.12-modules-extra-commonUpgrade bpftool-debuginfoUpgrade perf6.18-debuginfoUpgrade kernel-libbpfUpgrade bpftool6.18Upgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade kernel-headersUpgrade kernel6.12-debuginfo-common-aarch64 | May 19, 2026 | Apr 13, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | May 3, 2026 | May 3, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Apr 13, 2026 |
| Ubuntu | — | Upgrade linux-image-azure-fips-6.8Upgrade linux-image-gke-64kUpgrade linux-image-gcpUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-gcp-5.15Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-5.15.0-1112-awsUpgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-virtualUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-5.15.0-186-fipsUpgrade linux-image-aws-fips-5.15Upgrade linux-image-realtime-5.15Upgrade linux-image-fips-6.8Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-awsUpgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-xilinxUpgrade linux-image-azure-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-aws-64k-5.15Upgrade linux-image-6.8.0-1063-azureUpgrade linux-image-azure-fdeUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade 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-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-xilinx-6.8Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-laptop-23.10Upgrade linux-image-azure-cvmUpgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-raspi-6.8Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oracleUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-186-genericUpgrade linux-image-kvmUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-aws-5.15Upgrade linux-image-oem-20.04dUpgrade linux-image-raspi-5.15Upgrade linux-image-generic-64k-6.8Upgrade linux-image-fips-5.15Upgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-136-genericUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-nvidia-5.15Upgrade linux-image-aws-lts-22.04Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-aws-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-azure-6.8Upgrade linux-image-generic-64k-5.15Upgrade linux-image-ibm-classicUpgrade linux-image-aws-64kUpgrade linux-image-nvidiaUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-intel-iotgUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-generic-5.15Upgrade linux-image-intelUpgrade linux-image-lowlatency-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gke-5.15Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-lowlatency-6.8Upgrade linux-image-nvidia-tegraUpgrade linux-image-oem-20.04cUpgrade linux-image-azureUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-gke-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-ibmUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-lowlatency-5.15Upgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-gcp-fipsUpgrade linux-image-ibm-5.15Upgrade linux-image-oem-20.04bUpgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-fipsUpgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-oem-22.04aUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-azure-fde-5.15Upgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-gkeopUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-genericUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-oem-22.04cUpgrade linux-image-oracle-5.15Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-kvm-5.15Upgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-6.8.0-136-fipsUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-aws-fipsUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-gkeUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-gkeop-6.8Upgrade 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-azure-fips-5.15Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-virtual-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-5.15.0-1106-ibm | 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