{"id":"CVE-2022-49080","state":"PUBLISHED","title":"mm/mempolicy: fix mpol_new leak in shared_policy_replace","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmm/mempolicy: fix mpol_new leak in shared_policy_replace\n\nIf mpol_new is allocated but not used in restart loop, mpol_new will be\nfreed via mpol_put before returning to the caller.  But refcnt is not\ninitialized yet, so mpol_put could not do the right things and might\nleak the unused mpol_new.  This would happen if mempolicy was updated on\nthe shared shmem file while the sp->lock has been dropped during the\nmemory allocation.\n\nThis issue could be triggered easily with the below code snippet if\nthere are many processes doing the below work at the same time:\n\n  shmid = shmget((key_t)5566, 1024 * PAGE_SIZE, 0666|IPC_CREAT);\n  shm = shmat(shmid, 0, 0);\n  loop many times {\n    mbind(shm, 1024 * PAGE_SIZE, MPOL_LOCAL, mask, maxnode, 0);\n    mbind(shm + 128 * PAGE_SIZE, 128 * PAGE_SIZE, MPOL_DEFAULT, mask,\n          maxnode, 0);\n  }","publishedAt":"2025-02-26T01:54:41.176Z","updatedAt":"2026-05-11T18:52:38.593Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"8510c2346d9e47a72b7f018a36ef0c39483e53d6","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"5e16dc5378abd749a836daa9ee4ab2c8d2668999","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"39a32f3c06f6d68a530bf9612afa19f50f12e93d","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"25f506273b6ae806fd46bfcb6fdaa5b9ec81a05b","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"f7e183b0a7136b6dc9c7b9b2a85a608a8feba894","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"198932a14aeb19a15cf19e51e151d023bc4cd648","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"6e00309ac716fa8225f0cbde2cd9c24f0e74ee21","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"fe39ac59dbbf893b73b24e3184161d0bd06d6651","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"4ad099559b00ac01c3726e5c95dc3108ef47d03e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["mm/mempolicy.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"4.9.311","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.276","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.238","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.189","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.111","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.34","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.20","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17.3","status":"unaffected","lessThanOrEqual":"5.17.*","versionType":"semver"},{"version":"5.18","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["mm/mempolicy.c"]}],"references":["https://git.kernel.org/stable/c/8510c2346d9e47a72b7f018a36ef0c39483e53d6","https://git.kernel.org/stable/c/5e16dc5378abd749a836daa9ee4ab2c8d2668999","https://git.kernel.org/stable/c/39a32f3c06f6d68a530bf9612afa19f50f12e93d","https://git.kernel.org/stable/c/25f506273b6ae806fd46bfcb6fdaa5b9ec81a05b","https://git.kernel.org/stable/c/f7e183b0a7136b6dc9c7b9b2a85a608a8feba894","https://git.kernel.org/stable/c/198932a14aeb19a15cf19e51e151d023bc4cd648","https://git.kernel.org/stable/c/6e00309ac716fa8225f0cbde2cd9c24f0e74ee21","https://git.kernel.org/stable/c/fe39ac59dbbf893b73b24e3184161d0bd06d6651","https://git.kernel.org/stable/c/4ad099559b00ac01c3726e5c95dc3108ef47d03e"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/49xxx/CVE-2022-49080.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-49080","state":"PUBLISHED","datePublished":"2025-02-26T01:54:41.176Z","dateUpdated":"2026-05-11T18:52:38.593Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-02-26T01:49:39.247Z"},"containers":{"cna":{"title":"mm/mempolicy: fix mpol_new leak in shared_policy_replace","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmm/mempolicy: fix mpol_new leak in shared_policy_replace\n\nIf mpol_new is allocated but not used in restart loop, mpol_new will be\nfreed via mpol_put before returning to the caller.  But refcnt is not\ninitialized yet, so mpol_put could not do the right things and might\nleak the unused mpol_new.  This would happen if mempolicy was updated on\nthe shared shmem file while the sp->lock has been dropped during the\nmemory allocation.\n\nThis issue could be triggered easily with the below code snippet if\nthere are many processes doing the below work at the same time:\n\n  shmid = shmget((key_t)5566, 1024 * PAGE_SIZE, 0666|IPC_CREAT);\n  shm = shmat(shmid, 0, 0);\n  loop many times {\n    mbind(shm, 1024 * PAGE_SIZE, MPOL_LOCAL, mask, maxnode, 0);\n    mbind(shm + 128 * PAGE_SIZE, 128 * PAGE_SIZE, MPOL_DEFAULT, mask,\n          maxnode, 0);\n  }"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"8510c2346d9e47a72b7f018a36ef0c39483e53d6","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"5e16dc5378abd749a836daa9ee4ab2c8d2668999","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"39a32f3c06f6d68a530bf9612afa19f50f12e93d","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"25f506273b6ae806fd46bfcb6fdaa5b9ec81a05b","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"f7e183b0a7136b6dc9c7b9b2a85a608a8feba894","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"198932a14aeb19a15cf19e51e151d023bc4cd648","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"6e00309ac716fa8225f0cbde2cd9c24f0e74ee21","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"fe39ac59dbbf893b73b24e3184161d0bd06d6651","versionType":"git"},{"version":"42288fe366c4f1ce7522bc9f27d0bc2a81c55264","status":"affected","lessThan":"4ad099559b00ac01c3726e5c95dc3108ef47d03e","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["mm/mempolicy.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"4.9.311","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.276","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.238","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.189","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.111","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.34","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.16.20","status":"unaffected","lessThanOrEqual":"5.16.*","versionType":"semver"},{"version":"5.17.3","status":"unaffected","lessThanOrEqual":"5.17.*","versionType":"semver"},{"version":"5.18","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["mm/mempolicy.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8510c2346d9e47a72b7f018a36ef0c39483e53d6"},{"url":"https://git.kernel.org/stable/c/5e16dc5378abd749a836daa9ee4ab2c8d2668999"},{"url":"https://git.kernel.org/stable/c/39a32f3c06f6d68a530bf9612afa19f50f12e93d"},{"url":"https://git.kernel.org/stable/c/25f506273b6ae806fd46bfcb6fdaa5b9ec81a05b"},{"url":"https://git.kernel.org/stable/c/f7e183b0a7136b6dc9c7b9b2a85a608a8feba894"},{"url":"https://git.kernel.org/stable/c/198932a14aeb19a15cf19e51e151d023bc4cd648"},{"url":"https://git.kernel.org/stable/c/6e00309ac716fa8225f0cbde2cd9c24f0e74ee21"},{"url":"https://git.kernel.org/stable/c/fe39ac59dbbf893b73b24e3184161d0bd06d6651"},{"url":"https://git.kernel.org/stable/c/4ad099559b00ac01c3726e5c95dc3108ef47d03e"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T18:52:38.593Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"4.9.311"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"4.14.276"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"4.19.238"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.4.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.10.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.15.34"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.16.20"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.17.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.18"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}