High · published September 23, 2025
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]
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.19, < 5.15.194 | 5.15.194 |
| linux/linux_kernel | ≥ 5.16, < 6.1.153 | 6.1.153 |
| linux/linux_kernel | ≥ 6.2, < 6.6.107 | 6.6.107 |
| linux/linux_kernel | ≥ 6.7, < 6.12.48 | 6.12.48 |
| linux/linux_kernel | ≥ 6.13, < 6.16.8 | 6.16.8 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| debian/debian_linux | all versions | — |