{"id":"CVE-2026-31516","title":"xfrm: prevent policy_hthresh.work from racing with netns teardown","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: prevent policy_hthresh.work from racing with netns teardown\n\nA XFRM_MSG_NEWSPDINFO request can queue the per-net work item\npolicy_hthresh.work onto the system wor…","severity":"high","cvss":7.8,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"cna","vendor":"Linux","product":"Linux","affected":["Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 56ea2257b83ee29a543f158159e3d1abc1e3e4fe","Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 8854e9367465d784046362698731c1111e3b39b8","Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 4e2e77843fef473ef47e322d52436d8308582a96","Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 29fe3a61bcdce398ee3955101c39f89c01a8a77e","Linux 3.18"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"total","timestamp":"2026-10-16T15:10:33.949707Z"},"published":"2026-04-22","updated":"2026-10-16","sourceUpdated":"2026-10-16T15:20:14.411Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-31516","references":[{"url":"https://git.kernel.org/stable/c/56ea2257b83ee29a543f158159e3d1abc1e3e4fe"},{"url":"https://git.kernel.org/stable/c/8854e9367465d784046362698731c1111e3b39b8"},{"url":"https://git.kernel.org/stable/c/4e2e77843fef473ef47e322d52436d8308582a96"},{"url":"https://git.kernel.org/stable/c/29fe3a61bcdce398ee3955101c39f89c01a8a77e"}],"tags":["cve.org"],"epss":0.00135,"epssPercentile":0.02661,"ingestedAt":"2026-10-16T17:24:46.658Z","slug":"CVE-2026-31516","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: prevent policy_hthresh.work from racing with netns teardown\n\nA XFRM_MSG_NEWSPDINFO request can queue the per-net work item\npolicy_hthresh.work onto the system workqueue.\n\nThe queued callback, xfrm_hash_rebuild(), retrieves the enclosing\nstruct net via container_of(). If the net namespace is torn down\nbefore that work runs, the associated struct net may already have\nbeen freed, and xfrm_hash_rebuild() may then dereference stale memory.\n\nxfrm_policy_fini() already flushes policy_hash_work during teardown,\nbut it does not synchronize policy_hthresh.work.\n\nSynchronize policy_hthresh.work in xfrm_policy_fini() as well, so the\nqueued work cannot outlive the net namespace teardown and access a\nfreed struct net.\n\n## Affected\n\n- `Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 56ea2257b83ee29a543f158159e3d1abc1e3e4fe`\n- `Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 8854e9367465d784046362698731c1111e3b39b8`\n- `Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 4e2e77843fef473ef47e322d52436d8308582a96`\n- `Linux >= 880a6fab8f6ba5b5abe59ea68533202ddea1012c < 29fe3a61bcdce398ee3955101c39f89c01a8a77e`\n- `Linux 3.18`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":43,"depthScoreParts":{"impact":42.9,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}