CVE-2026-80742 in Linuxinfo

Summary

by MITRE • 09/03/2026

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

af_packet: Don't send zero-byte data in tpacket_snd().

syzbot reported a WARNING in __dev_queue_xmit() triggered via tpacket_snd():

skb_assert_len WARNING: at include/linux/skbuff.h:2753 skb_assert_len WARNING: at __dev_queue_xmit+0x21bc/0x4970 net/core/dev.c:4781

Call Trace: <TASK> dev_queue_xmit include/linux/netdevice.h:3448 [inline]
packet_xmit+0x243/0x310 net/packet/af_packet.c:276 tpacket_snd net/packet/af_packet.c:2907 [inline]
packet_sendmsg+0x28d6/0x4eb0 net/packet/af_packet.c:3134

When sending 0-byte packets via TPACKET ring buffer on devices with no hard header (e.g. dev->hard_header_len == 0), tpacket_fill_skb() populates an skb with skb->len == 0 and returns 0. tpacket_snd() then forwards this empty skb to packet_xmit(), causing __dev_queue_xmit() to hit skb_assert_len(skb).

Similar checks exist in packet_snd() via commit dc633700f00f ("net/af_packet: check len when min_header_len equals to 0") and in packet_sendmsg_spkt() via commit 6a341729fb31 ("af_packet: Don't send zero-byte data in packet_sendmsg_spkt().").

Return -EINVAL in tpacket_fill_skb() when skb->len is zero to reject zero-length packets in tpacket_snd().

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 09/03/2026

The Linux kernel's af_packet subsystem, which provides a low-level interface for network packet capture and injection via TPACKET ring buffers, contained a logic flaw that allowed the transmission of empty data frames under specific conditions. This vulnerability was identified by syzbot through automated fuzzing, which triggered a warning in the __dev_queue_xmit function. The issue arises when an application attempts to send packets with zero bytes of payload using the TPACKET interface on network devices that do not require a hard header, indicated by dev->hard_header_len being equal to zero. In such scenarios, the tpacket_fill_skb function correctly populates a socket buffer (skb) but sets its length field to zero before returning success. This empty skb is then passed up the stack through packet_xmit and ultimately reaches __dev_queue_xmit, which enforces strict validation rules on network device drivers regarding valid frame lengths.

The core technical flaw lies in the lack of validation within tpacket_snd for zero-length payloads when interacting with devices that have no hard header requirements. While similar protections were previously implemented for other packet sending paths such as packet_snd and packet_sendmsg_spkt to prevent the transmission of invalid frames, this specific code path was overlooked. The kernel's networking stack expects network interfaces to handle valid data structures, and passing an skb with a length of zero violates internal assertions designed to catch programming errors or malformed inputs early in the transmission process. This results in a kernel warning being logged via skb_assert_len, which can disrupt system stability if not handled gracefully by the surrounding error handling mechanisms, although it typically does not lead directly to privilege escalation or remote code execution due to its nature as an input validation failure rather than a memory corruption issue.

From a security and operational impact perspective, this vulnerability primarily affects system reliability and log integrity rather than confidentiality or integrity of data in transit. The immediate consequence is the generation of kernel warnings that may clutter logs and potentially trigger automated monitoring alerts for false positives regarding system health. In more severe cases involving strict kernel configurations or specific driver implementations, such invalid inputs could lead to unexpected behavior within network device drivers, though exploitation for malicious purposes like denial-of-service would require an attacker with local access capable of invoking the af_packet interface repeatedly. The vulnerability highlights a gap in input validation consistency across different packet transmission functions within the same subsystem, suggesting that similar edge cases might exist elsewhere if not carefully audited against industry standards for network stack robustness.

To mitigate this issue and align with best practices for secure coding in kernel development, the fix involves modifying tpacket_fill_skb to explicitly check if the calculated skb length is zero when operating on devices without hard headers. If a zero-length packet is detected under these conditions, the function now returns -EINVAL instead of proceeding with transmission. This change ensures that invalid inputs are rejected at the earliest possible stage in the processing pipeline, preventing them from reaching lower-level network drivers and triggering assertion failures. Administrators should apply this kernel patch to ensure consistent validation behavior across all af_packet sending functions. Furthermore, developers utilizing TPACKET interfaces for high-performance packet injection or monitoring applications must be aware that zero-length frames are no longer supported on devices with zero hard header length, requiring adjustments in application logic to either skip such operations or handle the resulting error codes appropriately. This remediation aligns with CWE-20 Improper Input Validation and mitigates risks associated with unexpected kernel state transitions during network I/O operations as categorized under ATT&CK techniques involving local resource manipulation.

Responsible

Linux

Reservation

08/26/2026

Disclosure

09/03/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!