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

bonding: refuse to enslave CAN devices

syzbot reported a kernel paging request crash in
can_rx_unregister() inside net/can/af_can.c. The crash occurs
because a virtual CAN device (vxcan) is being enslaved to a
bonding master.

During the enslavement process, the bonding driver mutates
and modifies the network device states to fit an Ethernet-like
aggregation model. However, CAN devices operate on a completely
different Layer 2 architecture, relying on the CAN mid-layer
private data structure (can_ml_priv) instead of standard
Ethernet structures. Since bonding does not initialize or
maintain these CAN structures, subsequent operations on the
half-enslaved interface (such as closing associated sockets
via isotp_release) lead to a null-pointer dereference when
accessing the CAN receiver lists.

Bonding CAN interfaces is architecturally invalid as CAN lacks
MAC addresses, ARP capabilities, and standard Ethernet
link-layer mechanisms. While generic loopback devices are
blocked globally in net/core/dev.c, virtual CAN devices
bypass this check because they do not carry the IFF_LOOPBACK
flag, despite acting as local software-loopbacks.

Fix this by explicitly blocking network devices of type
ARPHRD_CAN from being enslaved at the very beginning of
bond_enslave(). This prevents illegal state mutations,
eliminates the resulting KASAN crashes, and avoids potential
memory leaks from incomplete socket cleanups.

As the CAN support has been added a long time after bonding
the Fixes-tag points to the introduction of ARPHRD_CAN that
would have needed a specific handling in bonding_main.c.
Published: 2026-07-19
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The bonding driver in the Linux kernel incorrectly attempts to enslave virtual CAN (vxcan) devices as if they were Ethernet interfaces. During this process the driver mutates internal state structures that are not initialized for CAN traffic, leading to a null‑pointer dereference in can_rx_unregister. The resulting kernel panic is a denial of service. The flaw represents a classic null‑pointer dereference (CWE‑476) that impacts system integrity and availability when a CAN socket is closed after an illegal enslavement.

Affected Systems

The vulnerability affects the Linux kernel's bonding driver. Any kernel that has bonding enabled and allows a virtual CAN (vxcan) interface to be enslaved to a bond master is potentially vulnerable. Versions of the kernel predating the patch that introduced the guard against bonding ARPHRD_CAN devices are at risk.

Risk and Exploitability

Based on the description, it is inferred that the likely attack vector is local. The CVSS score for this issue is 5.5, indicating moderate severity, and the EPSS score is less than 1 %, implying a low probability of exploitation in so no known large‑scale exploitation has been reported. A local attacker with the ability to create or configure a virtual CAN interface could trigger the flaw by enslaving the device to a bond master; this might be achieved by a privileged user or through misconfigured network scripts. Because the issue requires local manipulation of network interface state and does not involve a remote code execution pathway, the overall risk is moderate, but the impact of a successful trigger—kernel crash resulting in system downtime—is significant.

Generated by OpenCVE AI on August 1, 2026 at 07:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that contains the patch blocking bonding of ARPHRD_CAN devices.
  • Review and update network configuration so that no virtual CAN (vxcan) interfaces are added as slaves to bonding masters; remove any existing vxcan entries from bond definitions.
  • If immediate kernel upgrade is not possible and CAN functionality is not required, unload the CAN kernel modules such as can, can_raw, and vxcan to eliminate the possibility of accidental bonding.

Generated by OpenCVE AI on August 1, 2026 at 07:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Tue, 21 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


Sun, 19 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bonding: refuse to enslave CAN devices syzbot reported a kernel paging request crash in can_rx_unregister() inside net/can/af_can.c. The crash occurs because a virtual CAN device (vxcan) is being enslaved to a bonding master. During the enslavement process, the bonding driver mutates and modifies the network device states to fit an Ethernet-like aggregation model. However, CAN devices operate on a completely different Layer 2 architecture, relying on the CAN mid-layer private data structure (can_ml_priv) instead of standard Ethernet structures. Since bonding does not initialize or maintain these CAN structures, subsequent operations on the half-enslaved interface (such as closing associated sockets via isotp_release) lead to a null-pointer dereference when accessing the CAN receiver lists. Bonding CAN interfaces is architecturally invalid as CAN lacks MAC addresses, ARP capabilities, and standard Ethernet link-layer mechanisms. While generic loopback devices are blocked globally in net/core/dev.c, virtual CAN devices bypass this check because they do not carry the IFF_LOOPBACK flag, despite acting as local software-loopbacks. Fix this by explicitly blocking network devices of type ARPHRD_CAN from being enslaved at the very beginning of bond_enslave(). This prevents illegal state mutations, eliminates the resulting KASAN crashes, and avoids potential memory leaks from incomplete socket cleanups. As the CAN support has been added a long time after bonding the Fixes-tag points to the introduction of ARPHRD_CAN that would have needed a specific handling in bonding_main.c.
Title bonding: refuse to enslave CAN devices
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-07-19T14:56:11.111Z

Reserved: 2026-07-19T07:54:57.025Z

Link: CVE-2026-63990

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity : Low

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-63990 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T08:00:14Z

Weaknesses