CVE-2026-23037
Description
In the Linux kernel, the following vulnerability has been resolved:
can: etas_es58x: allow partial RX URB allocation to succeed
When es58x_alloc_rx_urbs() fails to allocate the requested number of URBs but succeeds in allocating some, it returns an error code. This causes es58x_open() to return early, skipping the cleanup label 'free_urbs', which leads to the anchored URBs being leaked.
As pointed out by maintainer Vincent Mailhol, the driver is designed to handle partial URB allocation gracefully. Therefore, partial allocation should not be treated as a fatal error.
Modify es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, restoring the intended behavior and preventing the leak in es58x_open().
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A memory leak in the Linux kernel's ETAS ES58X CAN driver can be triggered when partial RX URB allocation occurs, leading to unanchored URBs.
Vulnerability
In the Linux kernel's ETAS ES58X CAN driver, the function es58x_alloc_rx_urbs() fails to properly handle partial URB allocation. When the function cannot allocate the requested number of URBs but succeeds in allocating some, it returns an error code instead of proceeding with the allocated URBs. The caller es58x_open() then exits early, skipping the cleanup label free_urbs, which leaves the already-allocated URBs anchored and never freed — causing a memory leak [1] [2].
Attack
Vector and Prerequisites
This flaw is triggered during the normal operation of the CAN interface; specifically when the system runs low on memory or dma-buffer resources, causing the URB allocation to partially fail. An attacker does not need special privileges to trigger this, as the bug is exposed through standard network interface control (e.g., bringing a CAN interface up and down). No authentication is required beyond the ability to open the CAN device, which typically requires root or CAP_NET_ADMIN. The attack surface is local; the bug does not require physical access if an unprivileged process can toggle the interface [3] [4].
Impact
An attacker who can repeatedly bring the CAN interface up and down under memory pressure can cause a kernel memory leak, slowly exhausting system memory and potentially leading to a denial-of-service condition. The leaked URBs remain attached to the USB subsystem are not released until the driver is unloaded or the system is rebooted, making the leak persistent across interface state changes [1] [2].
Mitigation
The fix modifies es58x_alloc_rx_urbs() to return 0 if at least one URB has been allocated, allowing the driver to continue with fewer URBs — which the driver is designed to handle gracefully. This restores the intended behavior and prevents the leak. The patch has been applied to the Linux kernel stable trees [1] [2] [3] [4]. Users should update their kernel to a version containing the fix.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
6- git.kernel.org/stable/c/611e839d2d552416b498ed5593e10670f61fcd4dnvd
- git.kernel.org/stable/c/6c5124a60989051799037834f0a1a4b428718157nvd
- git.kernel.org/stable/c/97250eb05e4b6afe787290e8fd97d0675116c61bnvd
- git.kernel.org/stable/c/aec888f44853584b5a7cd01249806030cf94a73dnvd
- git.kernel.org/stable/c/b1979778e98569c1e78c2c7f16bb24d76541ab00nvd
- git.kernel.org/stable/c/ba45e3d6b02c97dbb4578fbae7027fd66f3caa10nvd
News mentions
0No linked articles in our index yet.