8.8
/ 10
HIGH
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Description
In the Linux kernel, the following vulnerability has been resolved:
xfrm: iptfs: fix use-after-free on first_skb in __input_process_payload
__input_process_payload() stores first_skb into xtfs->ra_newskb under
drop_lock when starting partial reassembly, then unlocks and breaks out
of the processing loop. The post-loop check reads xtfs->ra_newskb
without the lock to decide whether first_skb is still owned:
if (first_skb && first_iplen && !defer && first_skb != xtfs->ra_newskb)
Between spin_unlock and this read, a concurrent CPU running
iptfs_reassem_cont() (or the drop_timer hrtimer) can complete
reassembly, NULL xtfs->ra_newskb, and free the skb. The check then
evaluates first_skb != NULL as true, and pskb_trim/ip_summed/consume_skb
operate on the freed skb — a use-after-free in skbuff_head_cache.
Replace the unlocked read with a local bool that records whether
first_skb was handed to the reassembly state in the current call. The
flag is set after the existing spin_unlock, before the break, using the
pointer equality that is stable at that point (first_skb == skb iff
first_skb was stored in ra_newskb).
xfrm: iptfs: fix use-after-free on first_skb in __input_process_payload
__input_process_payload() stores first_skb into xtfs->ra_newskb under
drop_lock when starting partial reassembly, then unlocks and breaks out
of the processing loop. The post-loop check reads xtfs->ra_newskb
without the lock to decide whether first_skb is still owned:
if (first_skb && first_iplen && !defer && first_skb != xtfs->ra_newskb)
Between spin_unlock and this read, a concurrent CPU running
iptfs_reassem_cont() (or the drop_timer hrtimer) can complete
reassembly, NULL xtfs->ra_newskb, and free the skb. The check then
evaluates first_skb != NULL as true, and pskb_trim/ip_summed/consume_skb
operate on the freed skb — a use-after-free in skbuff_head_cache.
Replace the unlocked read with a local bool that records whether
first_skb was handed to the reassembly state in the current call. The
flag is set after the existing spin_unlock, before the break, using the
pointer equality that is stable at that point (first_skb == skb iff
first_skb was stored in ra_newskb).
AI Analysis
Use-after-free vulnerability in the Linux kernel's xfrm: iptfs module
Basic Information
ID
CVE-2026-53240
Source
Linux
Published
Jun 25, 2026 at 08:39
Modified
Jun 28, 2026 at 06:40
Affected Product
Vendor
Linux
Product
Linux
Version
3f3339885fb343b7b42d7c34717108ce07da24ae
Affected Versions
Linux Linux 3f3339885fb343b7b42d7c34717108ce07da24ae
Linux Linux 3f3339885fb343b7b42d7c34717108ce07da24ae
Linux Linux 3f3339885fb343b7b42d7c34717108ce07da24ae
Linux Linux 6.14
Linux Linux 3f3339885fb343b7b42d7c34717108ce07da24ae
Linux Linux 3f3339885fb343b7b42d7c34717108ce07da24ae
Linux Linux 6.14
AI Assessment
AI Score
8.8 / 10
AI Severity
High
Vendor
Linux
Product
Linux Kernel
Version
3f3339885fb343b7b42d7c34717108ce07da24ae, 6.14