CVE-2026-72451 (GCVE-0-2026-72451)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: Fix xfrm state cache insertion race
The xfrm input state cache insertion code checks the validity of
the state before acquiring the global xfrm_state_lock. Thus it's
possible for someone else to kill the state after it passed the
validity check, and then the insertion will add the dead state
to the cache.
Fix this by moving the validity check inside the lock.
This entire function is called on the input path, where BH must
be off (e.g., the caller of this function xfrm_input acquires
its spinlocks without disabling BH).
So there is no need to disable BH here or take the RCU read lock.
Remove both and replace them with an assertion that trips if BH
is accidentally enabled on some future calling path.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6dab4dec9a49121d079981ac913569f232c06b06",
"status": "affected",
"version": "5e4334dc39443645415450163ff5ff1ee7e79784",
"versionType": "git"
},
{
"lessThan": "a1a3360a0c44b8b5c134db2a9d0667b61c9cf523",
"status": "affected",
"version": "81a331a0e72ddc2f75092603d9577bd1a0ca23ad",
"versionType": "git"
},
{
"lessThan": "041859fd55c81ea55e76d051e39b7b79975b8c7d",
"status": "affected",
"version": "81a331a0e72ddc2f75092603d9577bd1a0ca23ad",
"versionType": "git"
},
{
"lessThan": "ddd3d0132920319ac426e12456013eadbae67e15",
"status": "affected",
"version": "81a331a0e72ddc2f75092603d9577bd1a0ca23ad",
"versionType": "git"
},
{
"lessThan": "6.12.97",
"status": "affected",
"version": "6.12.13",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/xfrm/xfrm_state.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.13"
},
{
"lessThan": "6.13",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "6.12.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: Fix xfrm state cache insertion race\n\nThe xfrm input state cache insertion code checks the validity of\nthe state before acquiring the global xfrm_state_lock. Thus it\u0027s\npossible for someone else to kill the state after it passed the\nvalidity check, and then the insertion will add the dead state\nto the cache.\n\nFix this by moving the validity check inside the lock.\n\nThis entire function is called on the input path, where BH must\nbe off (e.g., the caller of this function xfrm_input acquires\nits spinlocks without disabling BH).\n\nSo there is no need to disable BH here or take the RCU read lock.\nRemove both and replace them with an assertion that trips if BH\nis accidentally enabled on some future calling path."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The flaw is hit on the inbound IPsec path (xfrm_input/xfrm_input_state_lookup) when processing remote ESP/AH or UDP-encap ESP packets on internet-facing VPN gateways, cloud IPsec endpoints, and other systems terminating IPsec from the network.\nAC:L - An attacker can drive both sides of the race by flooding inbound IPsec packets while concurrently deleting or expiring the same SA (netlink XFRM_MSG_DELSA with CAP_NET_ADMIN in a user namespace, or kernel hard-expiry timers during rekey).\nPR:N - Remote exploitation needs no privileges on the victim: crafted ESP/AH packets trigger the lookup while the kernel or IKE stack concurrently tears down the matching SA via timers, rekey, or administrative SA deletion.\nUI:N - No victim user interaction is required beyond normal IPsec operation on hosts that already receive and decrypt IPsec traffic; exploitation is driven entirely by attacker-sent packets and concurrent SA teardown.\nS:U - The bug corrupts kernel memory on the IPsec endpoint itself and enables standard kernel privilege escalation; it does not cross VM, container, or IOMMU security boundaries.\nC:H - A deleted xfrm_state can be inserted into the per-CPU input cache and later referenced after free, creating a use-after-free that enables heap spraying and arbitrary kernel memory disclosure via stale structure fields.\nI:H - Subsequent cache hits dereference the freed xfrm_state (spin_lock, type-\u003einput function pointers, crypto context pointers), providing controllable heap corruption primitives suitable for arbitrary kernel code execution.\nA:H - Dereferencing freed xfrm_state objects during input processing can cause kernel oops/panic, and successful exploitation can crash or hang the system; use-after-free on the softirq receive path inherently threatens availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:20.831Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6dab4dec9a49121d079981ac913569f232c06b06"
},
{
"url": "https://git.kernel.org/stable/c/a1a3360a0c44b8b5c134db2a9d0667b61c9cf523"
},
{
"url": "https://git.kernel.org/stable/c/041859fd55c81ea55e76d051e39b7b79975b8c7d"
},
{
"url": "https://git.kernel.org/stable/c/ddd3d0132920319ac426e12456013eadbae67e15"
}
],
"title": "xfrm: Fix xfrm state cache insertion race",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72451",
"datePublished": "2026-08-15T05:56:59.561Z",
"dateReserved": "2026-08-09T03:40:39.931Z",
"dateUpdated": "2026-08-17T05:44:20.831Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…