CVE-2022-49080
Vulnerability Summary
Timeline
Description
In the Linux kernel, the following vulnerability has been resolved: mm/mempolicy: fix mpol_new leak in shared_policy_replace If mpol_new is allocated but not used in restart loop, mpol_new will be freed via mpol_put before returning to the caller. But refcnt is not initialized yet, so mpol_put could not do the right things and might leak the unused mpol_new. This would happen if mempolicy was updated on the shared shmem file while the sp->lock has been dropped during the memory allocation. This issue could be triggered easily with the below code snippet if there are many processes doing the below work at the same time: shmid = shmget((key_t)5566, 1024 * PAGE_SIZE, 0666|IPC_CREAT); shm = shmat(shmid, 0, 0); loop many times { mbind(shm, 1024 * PAGE_SIZE, MPOL_LOCAL, mask, maxnode, 0); mbind(shm + 128 * PAGE_SIZE, 128 * PAGE_SIZE, MPOL_DEFAULT, mask, maxnode, 0); }
CVSS Metrics
- v3.1•MEDIUM•Score: 5.5CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
EPSS Trends
Current EPSS score: 0.01%• Percentile: 1%
Techniques & Countermeasures
- CWE-401•Missing Release of Memory after Effective Lifetime
The product does not sufficiently track and release allocated memory after it has been used, making the memory unavailable for reallocation and reuse.
Affected Systems
- linux•linux
≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 8510c2346d9e47a72b7f018a36ef0c39483e53d6 | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 5e16dc5378abd749a836daa9ee4ab2c8d2668999 | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 39a32f3c06f6d68a530bf9612afa19f50f12e93d | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 25f506273b6ae806fd46bfcb6fdaa5b9ec81a05b | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < f7e183b0a7136b6dc9c7b9b2a85a608a8feba894 | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 198932a14aeb19a15cf19e51e151d023bc4cd648 | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 6e00309ac716fa8225f0cbde2cd9c24f0e74ee21 | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < fe39ac59dbbf893b73b24e3184161d0bd06d6651 | ≥ 42288fe366c4f1ce7522bc9f27d0bc2a81c55264, < 4ad099559b00ac01c3726e5c95dc3108ef47d03e | 3.8
- linux•linux_kernel
≥ 3.8.1, < 4.9.311 | ≥ 4.10, < 4.14.276 | ≥ 4.15, < 4.19.238 | ≥ 4.20, < 5.4.189 | ≥ 5.5, < 5.10.111 | ≥ 5.11, < 5.15.34 | ≥ 5.16, < 5.16.20 | ≥ 5.17, < 5.17.3 | 3.8 | 3.8:rc2 | 3.8:rc3 | 3.8:rc4 | 3.8:rc5 | 3.8:rc6 | 3.8:rc7 | 5.18:rc1
References (9)
- 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