CVE-2026-98271
Received Received - Intake

BaseFortify

Vulnerability report for CVE-2026-98271, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-06

Last updated on: 2026-10-19

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: net: skbuff: do not leave stale header offsets after pskb_carve() pskb_carve_inside_header() and pskb_carve_inside_nonlinear() remove the first bytes of a packet and reallocate skb->head. All the headers that were present before the operation are gone, but both functions call skb_headers_offset_update(skb, 0), which is a no-op : skb->mac_header, skb->network_header, skb->transport_header and skb->csum_start keep their old values and now describe bytes which are no longer there. Both helpers size the new head from the old skb_end_offset(), so the stale offsets still land inside the new allocation. They point past skb_tail_pointer() though, to bytes that were never initialized. pskb_carve_inside_nonlinear() is the worst case, because it leaves a zombie skb with an empty linear part (skb->data == skb_tail_pointer(skb), skb_headlen(skb) == 0), while skb_mac_header_was_set() is still true and skb->mac_header is way ahead of skb->data. The only user of pskb_extract() is rds_tcp_data_recv(), and the carved skb is queued on tinc->ti_skb_list. When the RDS incoming message is released, rds_tcp_inc_free() calls skb_queue_purge(), which frees the skbs with SKB_DROP_REASON_QUEUE_PURGE. This is visible from drop_monitor, which then tries to pull back to the (bogus) mac header : skbuff: __skb_pull(len=234) skb len=6968 data_len=6968 headroom=0 headlen=0 tailroom=0 end-tail=384 mac=(234,14) mac_len=14 net=(248,40) trans=288 shinfo(txflags=0 nr_frags=1 gso(size=1428 type=16 segs=5)) csum(0x100120 start=288 offset=16 ip_summed=3 complete_sw=0 valid=1 level=0) hash(0x7b446c6c sw=0 l4=1) proto=0x86dd pkttype=0 iif=60 kernel BUG at ./include/linux/skbuff.h:2847! Add skb_carve_reset_headers() to mark the mac and transport headers as not set, reset the network header, clear skb->mac_len, and drop a now meaningless CHECKSUM_PARTIAL (csum_start no longer describes anything). Invalidate the inner offsets as well. Unlike mac_header and transport_header they have no "unset" sentinel, so a leftover non-zero value still looks like a real header. Zero skb->inner_mac_header, skb->inner_network_header, skb->inner_transport_header, skb->inner_protocol and skb->encapsulation, so that all the header state is invalidated in one place. v2: fixed an inaccurate changelog. The stale offsets stay inside the new skb->head, which is never smaller than the old one, they simply point past skb_tail_pointer() to bytes that are gone. Thanks to Xuanqiang Luo for insisting on this. Also invalidate the inner header state, as suggested by the netdev AI review : https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260911114922.621937-1-edumazet%40google.com

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-06
Last Modified
2026-10-19
Generated
2026-10-19
AI Q&A
2026-10-06
EPSS Evaluated
2026-10-18
NVD
EUVD

Affected Vendors & Products

Showing 5 associated CPEs
Vendor Product Version / Range
Linux Linux 6fa01ccd883021105e9f8af7d04b9f156fa3494a
Linux Linux 6fa01ccd883021105e9f8af7d04b9f156fa3494a
Linux Linux 6fa01ccd883021105e9f8af7d04b9f156fa3494a
Linux Linux 6fa01ccd883021105e9f8af7d04b9f156fa3494a
Linux Linux 4.7

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves incorrect handling of network packet headers when using pskb_carve_inside_header() and pskb_carve_inside_nonlinear(). These functions remove bytes from a packet but fail to properly reset header offsets, leaving stale references to data that no longer exists. This can cause the kernel to access invalid memory locations, leading to crashes or security issues.

Detection Guidance

This vulnerability is specific to the Linux kernel's skbuff handling and may not have direct detection commands. Monitor kernel logs for skbuff-related errors or crashes, particularly messages about invalid header offsets or skb_pull operations. Check for kernel BUG messages in /var/log/kern.log or dmesg output.

Impact Analysis

This vulnerability could cause system crashes or instability when processing network packets, potentially leading to denial-of-service conditions. Attackers might exploit it to trigger kernel bugs or execute arbitrary code with kernel privileges, depending on the system configuration.

Compliance Impact

This vulnerability affects network packet handling in the Linux kernel, which could lead to memory corruption or crashes when processing network data. While not directly related to data privacy, such kernel issues may impact system stability and security controls that are relevant for compliance with standards like GDPR or HIPAA, which require robust data protection and system integrity measures.

Mitigation Strategies

Apply the latest Linux kernel patches that address this issue. Update your system using your distribution's package manager (e.g., apt upgrade, yum update). Reboot the system to load the patched kernel. Monitor for any skbuff-related errors after applying the update.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-98271. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart