High · published April 24, 2026
In the Linux kernel, the following vulnerability has been resolved:
xfrm: hold dev ref until after transport_finish NF_HOOK
After async crypto completes, xfrm_input_resume() calls dev_put()
immediately on re-entry before the skb reaches transport_finish.
The skb->dev pointer is then used inside NF_HOOK and its okfn,
which can race with device teardown.
Remove the dev_put from the async resumption entry and instead
drop the reference after the NF_HOOK call in transport_finish,
using a saved device pointer since NF_HOOK may consume the skb.
This covers NF_DROP, NF_QUEUE and NF_STOLEN paths that skip
the okfn.
For non-transport exits (decaps, gro, drop) and secondary
async return points, release the reference inline when
async is set.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 3.2.100, < 3.3 | 3.3 |
| linux/linux_kernel | ≥ 3.16.55, < 3.17 | 3.17 |
| linux/linux_kernel | ≥ 4.14.24, < 4.15 | 4.15 |
| linux/linux_kernel | ≥ 4.15.1, < 6.18.23 | 6.18.23 |
| linux/linux_kernel | ≥ 6.19, < 6.19.13 | 6.19.13 |
| 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 | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |