Monitor vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
7.8
CVE-2025-39873: Linux Kernel: Xilinx CAN Driver Skb Freeing Risk
CVE-2025-39873
Summary
A fix has been made to the Linux kernel's Xilinx CAN driver to prevent a situation where a piece of data (skb) is used after it's been freed. This issue is now resolved, but it's essential to update your system to the latest version of the Linux kernel to ensure you're protected. No action is required if you've already updated your kernel.
What to do
No fix is available yet. Check with your software vendor for updates.
Affected software
| Vendor | Product | Affected versions |
|---|---|---|
| linux | linux_kernel |
>= 4.19, < 5.15.194 >= 5.16, < 6.1.153 >= 6.2, < 6.6.107 >= 6.7, < 6.12.48 >= 6.13, < 6.16.8 6.17 cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| debian | debian_linux |
11.0 cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:* |
Original title
In the Linux kernel, the following vulnerability has been resolved:
can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB
can_put_echo_skb() takes ownership of the SKB and it...
Original description
In the Linux kernel, the following vulnerability has been resolved:
can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB
can_put_echo_skb() takes ownership of the SKB and it may be freed
during or after the call.
However, xilinx_can xcan_write_frame() keeps using SKB after the call.
Fix that by only calling can_put_echo_skb() after the code is done
touching the SKB.
The tx_lock is held for the entire xcan_write_frame() execution and
also on the can_get_echo_skb() side so the order of operations does not
matter.
An earlier fix commit 3d3c817c3a40 ("can: xilinx_can: Fix usage of skb
memory") did not move the can_put_echo_skb() call far enough.
[mkl: add "commit" in front of sha1 in patch description]
[mkl: fix indention]
can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB
can_put_echo_skb() takes ownership of the SKB and it may be freed
during or after the call.
However, xilinx_can xcan_write_frame() keeps using SKB after the call.
Fix that by only calling can_put_echo_skb() after the code is done
touching the SKB.
The tx_lock is held for the entire xcan_write_frame() execution and
also on the can_get_echo_skb() side so the order of operations does not
matter.
An earlier fix commit 3d3c817c3a40 ("can: xilinx_can: Fix usage of skb
memory") did not move the can_put_echo_skb() call far enough.
[mkl: add "commit" in front of sha1 in patch description]
[mkl: fix indention]
nvd CVSS3.1
7.8
Vulnerability type
CWE-416
Use After Free
- https://git.kernel.org/stable/c/1139321161a3ba5e45e61e0738b37f42f20bc57a Patch
- https://git.kernel.org/stable/c/668cc1e3bb21101d074e430de1b7ba8fd10189e7 Patch
- https://git.kernel.org/stable/c/725b33deebd6e4c96fe7893f384510a54258f28f Patch
- https://git.kernel.org/stable/c/94b050726288a56a6b8ff55aa641f2fedbd3b44c Patch
- https://git.kernel.org/stable/c/e202ffd9e54538ef67ec301ebd6d9da4823466c9 Patch
- https://git.kernel.org/stable/c/ef79f00be72bd81d2e1e6f060d83cf7e425deee4 Patch
- https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html Third Party Advisory Mailing List
Published: 23 Sep 2025 · Updated: 19 Jun 2026 · First seen: 7 Mar 2026