CVE-2022-50466
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
fs/binfmt_elf: Fix memory leak in load_elf_binary()
There is a memory leak reported by kmemleak:
unreferenced object 0xffff88817104ef80 (size 224): comm "xfs_admin", pid 47165, jiffies 4298708825 (age 1333.476s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ……………. 60 a8 b3 00 81 88 ff ff a8 10 5a 00 81 88 ff ff `………Z….. backtrace: [<ffffffff819171e1>] __alloc_file+0x21/0x250 [<ffffffff81918061>] alloc_empty_file+0x41/0xf0 [<ffffffff81948cda>] path_openat+0xea/0x3d30 [<ffffffff8194ec89>] do_filp_open+0x1b9/0x290 [<ffffffff8192660e>] do_open_execat+0xce/0x5b0 [<ffffffff81926b17>] open_exec+0x27/0x50 [<ffffffff81a69250>] load_elf_binary+0x510/0x3ed0 [<ffffffff81927759>] bprm_execve+0x599/0x1240 [<ffffffff8192a997>] do_execveat_common.isra.0+0x4c7/0x680 [<ffffffff8192b078>] __x64_sys_execve+0x88/0xb0 [<ffffffff83bbf0a5>] do_syscall_64+0x35/0x80
If "interp_elf_ex" fails to allocate memory in load_elf_binary(), the program will take the "out_free_ph" error handing path, resulting in "interpreter" file resource is not released.
Fix it by adding an error handing path "out_free_file", which will release the file resource when "interp_elf_ex" failed to allocate memory.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 0693ffebcfe5ac7b31f63ad54587007f7d96fb7b < 706215300411d48db6b51a5832b872632a84bbc1 | affected |
| Linux | Linux | 0693ffebcfe5ac7b31f63ad54587007f7d96fb7b < 265b6fb780f57d10449a40e94219b28fa52479cc | affected |
| Linux | Linux | 0693ffebcfe5ac7b31f63ad54587007f7d96fb7b < acd9b4914f1c5928c7ae8ebc623d6291eb1a573a | affected |
| Linux | Linux | 0693ffebcfe5ac7b31f63ad54587007f7d96fb7b < 594d2a14f2168c09b13b114c3d457aa939403e52 | affected |
| Linux | Linux | 5.7 | affected |
| Linux | Linux | 0 < 5.7 | unaffected |
| Linux | Linux | 5.10.153 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.77 <= 5.15.* | unaffected |
| Linux | Linux | 6.0.7 <= 6.0.* | unaffected |
| Linux | Linux | 6.1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/706215300411d48db6b51a5832b872632a84bbc1
- https://git.kernel.org/stable/c/265b6fb780f57d10449a40e94219b28fa52479cc
- https://git.kernel.org/stable/c/acd9b4914f1c5928c7ae8ebc623d6291eb1a573a
- https://git.kernel.org/stable/c/594d2a14f2168c09b13b114c3d457aa939403e52
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.