CVE-2022-49567

Source
https://nvd.nist.gov/vuln/detail/CVE-2022-49567
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-49567.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-49567
Related
Published
2025-02-26T07:01:32Z
Modified
2025-03-10T22:47:30.715910Z
Downstream
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
Details

In the Linux kernel, the following vulnerability has been resolved:

mm/mempolicy: fix uninit-value in mpolrebindpolicy()

mpolsetnodemask()(mm/mempolicy.c) does not set up nodemask when pol->mode is MPOLLOCAL. Check pol->mode before access pol->w.cpusetmemsallowed in mpolrebind_policy()(mm/mempolicy.c).

BUG: KMSAN: uninit-value in mpolrebindpolicy mm/mempolicy.c:352 [inline] BUG: KMSAN: uninit-value in mpolrebindtask+0x2ac/0x2c0 mm/mempolicy.c:368 mpolrebindpolicy mm/mempolicy.c:352 [inline] mpolrebindtask+0x2ac/0x2c0 mm/mempolicy.c:368 cpusetchangetasknodemask kernel/cgroup/cpuset.c:1711 [inline] cpusetattach+0x787/0x15e0 kernel/cgroup/cpuset.c:2278 cgroupmigrateexecute+0x1023/0x1d20 kernel/cgroup/cgroup.c:2515 cgroupmigrate kernel/cgroup/cgroup.c:2771 [inline] cgroupattachtask+0x540/0x8b0 kernel/cgroup/cgroup.c:2804 _cgroup1procswrite+0x5cc/0x7a0 kernel/cgroup/cgroup-v1.c:520 cgroup1taskswrite+0x94/0xb0 kernel/cgroup/cgroup-v1.c:539 cgroupfilewrite+0x4c2/0x9e0 kernel/cgroup/cgroup.c:3852 kernfsfopwriteiter+0x66a/0x9f0 fs/kernfs/file.c:296 callwriteiter include/linux/fs.h:2162 [inline] newsyncwrite fs/readwrite.c:503 [inline] vfswrite+0x1318/0x2030 fs/readwrite.c:590 ksyswrite+0x28b/0x510 fs/readwrite.c:643 _dosyswrite fs/readwrite.c:655 [inline] _sesyswrite fs/readwrite.c:652 [inline] _x64syswrite+0xdb/0x120 fs/readwrite.c:652 dosyscallx64 arch/x86/entry/common.c:51 [inline] dosyscall64+0x54/0xd0 arch/x86/entry/common.c:82 entrySYSCALL64afterhwframe+0x44/0xae

Uninit was created at: slabpostallochook mm/slab.h:524 [inline] slaballocnode mm/slub.c:3251 [inline] slaballoc mm/slub.c:3259 [inline] kmemcachealloc+0x902/0x11c0 mm/slub.c:3264 mpolnew mm/mempolicy.c:293 [inline] dosetmempolicy+0x421/0xb70 mm/mempolicy.c:853 kernelsetmempolicy mm/mempolicy.c:1504 [inline] _dosyssetmempolicy mm/mempolicy.c:1510 [inline] _sesyssetmempolicy+0x44c/0xb60 mm/mempolicy.c:1507 _x64syssetmempolicy+0xd8/0x110 mm/mempolicy.c:1507 dosyscallx64 arch/x86/entry/common.c:51 [inline] dosyscall64+0x54/0xd0 arch/x86/entry/common.c:82 entrySYSCALL64after_hwframe+0x44/0xae

KMSAN: uninit-value in mpolrebindtask (2) https://syzkaller.appspot.com/bug?id=d6eb90f952c2a5de9ea718a1b873c55cb13b59dc

This patch seems to fix below bug too. KMSAN: uninit-value in mpolrebindmm (2) https://syzkaller.appspot.com/bug?id=f2fecd0d7013f54ec4162f60743a2b28df40926b

The uninit-value is pol->w.cpusetmemsallowed in mpolrebindpolicy(). When syzkaller reproducer runs to the beginning of mpol_new(),

    mpol_new() mm/mempolicy.c
  do_mbind() mm/mempolicy.c
kernel_mbind() mm/mempolicy.c

mode is 1(MPOLPREFERRED), nodesempty(*nodes) is true and flags is 0. Then

mode = MPOL_LOCAL;
...
policy->mode = mode;
policy->flags = flags;

will be executed. So in mpolsetnodemask(),

    mpol_set_nodemask() mm/mempolicy.c
  do_mbind()
kernel_mbind()

pol->mode is 4 (MPOLLOCAL), that nodemask in pol is not initialized, which will be accessed in mpolrebind_policy().

References

Affected packages

Debian:11 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.10.136-1

Affected versions

5.*

5.10.46-4
5.10.46-5
5.10.70-1~bpo10+1
5.10.70-1
5.10.84-1
5.10.92-1~bpo10+1
5.10.92-1
5.10.92-2
5.10.103-1~bpo10+1
5.10.103-1
5.10.106-1
5.10.113-1
5.10.120-1~bpo10+1
5.10.120-1
5.10.127-1
5.10.127-2~bpo10+1
5.10.127-2

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:12 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.18.16-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.18.16-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}