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

can: dev: init_can_skb(): restore skb header initialization

Commit 9f10374bb024 ("can: remove private CAN skb headroom infrastructure")
removed the skb_reset_mac_header()/skb_reset_network_header()/
skb_reset_transport_header() calls from init_can_skb(). As a result, RX
skbs from alloc_can_skb() and friends again carry mac_header = 0xFFFF.
When such an skb reaches packet_rcv_spkt() (SOCK_PACKET), the push length
calculation overflows and triggers skb_under_panic -> kernel BUG -> full
machine panic.

The same issue was originally reported in 2014 on linux-can and fixed by
commit 969439016d2c ("can: add missing initialisations in CAN related
skbuffs"). packet_rcv_spkt() itself has never been hardened: only
packet_rcv() and tpacket_rcv() gained dev_has_header() checks in
commit d549699048b4 ("net/packet: fix packet receive on L3 devices
without visible hard header").
Published: 2026-10-23
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service that can cause a kernel panic and full system crash
Action: Immediate Patch
AI Analysis

Impact

A flaw in the Linux kernel’s CAN stack removes essential header initialization from newly allocated socket buffers. When these buffers reach the packet receive path, the resulting malformed header causes a length overflow, triggering an internal kernel panic that brings the entire machine down. The impact is a denial of service that could be leveraged by an attacker to crash a host, and in environments where the kernel restarts automatically, could enable further exploitation attempts.

Affected Systems

All Linux kernel builds that include the change which removed skb_reset_mac_header(), skb_reset_network_header(), and skb_reset_transport_header() from init_can_skb() – effectively any current kernel generation that incorporates commit 9f10374bb024. The original bug was fixed in 2014 by adding the missing initialisations (commit 969439016d2c) and later hardened packet receive checks (commit d549699048b4). Users of kernel versions that have not applied these upstream fixes are at risk.

Risk and Exploitability

The CVSS score is not provided and EPSS is not available, but the bug can be triggered by external CAN traffic, making it a likely remote denial of service vector. The vulnerability is not in the CISA KEV catalog, but the lack of hardening means attackers do not need elevated privileges to deliver malicious packets. Once the overflow occurs, a kernel panic ensues, forcing a reboot that can be repeated to destabilise critical infrastructure. Given the severity of a full system crash and the ability to exploit remotely, the risk is high and mitigation should be prioritized.

Generated by OpenCVE AI on October 23, 2026 at 15:42 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that includes the upstream fix restoring skb header initialisation (commit 969439016d2c) and the packet receive hardening (commit d549699048b4).
  • If an upgrade is not immediately possible, apply a custom patch that reintroduces the missing skb_reset_* calls into init_can_skb() or revert the offending commit 9f10374bb024.
  • As a temporary defensive measure, disable or restrict the CAN interface on untrusted systems, or use firewall rules to block unexpected CAN traffic from remote hosts.

Generated by OpenCVE AI on October 23, 2026 at 15:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-680

Fri, 23 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: can: dev: init_can_skb(): restore skb header initialization Commit 9f10374bb024 ("can: remove private CAN skb headroom infrastructure") removed the skb_reset_mac_header()/skb_reset_network_header()/ skb_reset_transport_header() calls from init_can_skb(). As a result, RX skbs from alloc_can_skb() and friends again carry mac_header = 0xFFFF. When such an skb reaches packet_rcv_spkt() (SOCK_PACKET), the push length calculation overflows and triggers skb_under_panic -> kernel BUG -> full machine panic. The same issue was originally reported in 2014 on linux-can and fixed by commit 969439016d2c ("can: add missing initialisations in CAN related skbuffs"). packet_rcv_spkt() itself has never been hardened: only packet_rcv() and tpacket_rcv() gained dev_has_header() checks in commit d549699048b4 ("net/packet: fix packet receive on L3 devices without visible hard header").
Title can: dev: init_can_skb(): restore skb header initialization
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-23T12:23:09.516Z

Reserved: 2026-09-25T10:25:14.389Z

Link: CVE-2026-99066

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:30.477

Modified: 2026-10-23T13:17:30.477

Link: CVE-2026-99066

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T15:45:16Z

Weaknesses
  • CWE-680

    Integer Overflow to Buffer Overflow