of/overlay: don't leak fragment references when changeset init fails
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.56, 7.2.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: of/overlay: don't leak fragment references when changeset init fails init_overlay_changeset() stores the number of initialized fragments in ovcs->count only on full success. When find_target() or the symbols lookup fails partway through, the target and overlay references taken for the fragments initialized so far are never dropped: free_overlay_changeset() bounds its cleanup loop by ovcs->count, which is still 0. Store the running count on the error path so free_overlay_changeset() puts whatever was set up. The store is guarded by ovcs->fragments because on the allocation-failure path cnt still holds the counting pass total while there is no fragments array; everywhere else cnt only counts fully-initialized fragments.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
4.15
- KernelLinux
From 4.15.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10
References 8
git.kernel.org
- stable/c/c654f283d7db20648a5bbf979209f78d4fa9be3f
- stable/c/64517aeaa3d8b158e4d01321a095be48cb551251
- stable/c/bbe3dc64b28a14bd9ecb514bbf5115ac8472ed80
- stable/c/702b5db6e7b3865be70675d57d6fd7dde80d02b6
- stable/c/894573e2fdaeb1b15030b7eebc22615edf28a6cd
- stable/c/7a46f1917b320cc8762183b802301da02a191b6a
- stable/c/3a23fb158ba517b77a2e5258263bdfdaa480f758
- stable/c/1d62f0f2bc7edb12ed09f71203df0e47fa4efca4