{"id":"CVE-2026-43090","state":"PUBLISHED","title":"xfrm: fix refcount leak in xfrm_migrate_policy_find","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: fix refcount leak in xfrm_migrate_policy_find\n\nsyzkaller reported a memory leak in xfrm_policy_alloc:\n\n  BUG: memory leak\n  unreferenced object 0xffff888114d79000 (size 1024):\n    comm \"syz.1.17\", pid 931\n    ...\n    xfrm_policy_alloc+0xb3/0x4b0 net/xfrm/xfrm_policy.c:432\n\nThe root cause is a double call to xfrm_pol_hold_rcu() in\nxfrm_migrate_policy_find(). The lookup function already returns\na policy with held reference, making the second call redundant.\n\nRemove the redundant xfrm_pol_hold_rcu() call to fix the refcount\nimbalance and prevent the memory leak.\n\nFound by Linux Verification Center (linuxtesting.org) with Syzkaller.","publishedAt":"2026-05-06T07:40:23.286Z","updatedAt":"2026-05-11T22:17:32.208Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"21e235a36cfb6d145cefb10728f12f5dc5412f54","versionType":"git"},{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"836ee1b0426ea3db31531e9581cc32f513d24e32","versionType":"git"},{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"70c2a89a3bc207c3bfbf6f21bb439809e0a4a27a","versionType":"git"},{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"83317cce60a032c49480dcdabe146435bd689d03","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/xfrm/xfrm_policy.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.12","versionType":"semver"},{"version":"6.12.83","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.24","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.14","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/xfrm/xfrm_policy.c"]}],"references":["https://git.kernel.org/stable/c/21e235a36cfb6d145cefb10728f12f5dc5412f54","https://git.kernel.org/stable/c/836ee1b0426ea3db31531e9581cc32f513d24e32","https://git.kernel.org/stable/c/70c2a89a3bc207c3bfbf6f21bb439809e0a4a27a","https://git.kernel.org/stable/c/83317cce60a032c49480dcdabe146435bd689d03"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:57.932Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/43xxx/CVE-2026-43090.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-43090","state":"PUBLISHED","datePublished":"2026-05-06T07:40:23.286Z","dateUpdated":"2026-05-11T22:17:32.208Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-01T14:12:55.984Z"},"containers":{"cna":{"title":"xfrm: fix refcount leak in xfrm_migrate_policy_find","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: fix refcount leak in xfrm_migrate_policy_find\n\nsyzkaller reported a memory leak in xfrm_policy_alloc:\n\n  BUG: memory leak\n  unreferenced object 0xffff888114d79000 (size 1024):\n    comm \"syz.1.17\", pid 931\n    ...\n    xfrm_policy_alloc+0xb3/0x4b0 net/xfrm/xfrm_policy.c:432\n\nThe root cause is a double call to xfrm_pol_hold_rcu() in\nxfrm_migrate_policy_find(). The lookup function already returns\na policy with held reference, making the second call redundant.\n\nRemove the redundant xfrm_pol_hold_rcu() call to fix the refcount\nimbalance and prevent the memory leak.\n\nFound by Linux Verification Center (linuxtesting.org) with Syzkaller."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"21e235a36cfb6d145cefb10728f12f5dc5412f54","versionType":"git"},{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"836ee1b0426ea3db31531e9581cc32f513d24e32","versionType":"git"},{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"70c2a89a3bc207c3bfbf6f21bb439809e0a4a27a","versionType":"git"},{"version":"563d5ca93e883b9dcb4b7dc8967ac569fd91820d","status":"affected","lessThan":"83317cce60a032c49480dcdabe146435bd689d03","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/xfrm/xfrm_policy.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.12","versionType":"semver"},{"version":"6.12.83","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.24","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.14","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/xfrm/xfrm_policy.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/21e235a36cfb6d145cefb10728f12f5dc5412f54"},{"url":"https://git.kernel.org/stable/c/836ee1b0426ea3db31531e9581cc32f513d24e32"},{"url":"https://git.kernel.org/stable/c/70c2a89a3bc207c3bfbf6f21bb439809e0a4a27a"},{"url":"https://git.kernel.org/stable/c/83317cce60a032c49480dcdabe146435bd689d03"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T22:17:32.208Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.12.83"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.18.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.19.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}