media: atomisp: gc2235: fix UAF and memory leak
- 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 4.18, 6.6.160, 6.12.97, 6.18.40, 7.1.5
- 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: media: atomisp: gc2235: fix UAF and memory leak gc2235_probe() handles its error paths incorrectly. If media_entity_pads_init() fails, gc2235_remove() is called, which tears down the subdev and frees dev, but then still falls through to atomisp_register_i2c_module(). This results in use-after-free. If atomisp_register_i2c_module() fails, the media entity and control handler are left initialized and dev is leaked. gc2235_remove() unconditionally calls media_entity_cleanup() and v4l2_ctrl_handler_free(), but these are not initialized at every error path in gc2235_probe(). Replace gc2235_remove() calls in the probe error paths with explicit unwind labels that free only the resources initialized at each point of failure, in reverse order of initialization.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From a49d25364dfb9f8a64037488a39ab1f56c5fa419 · fixed in 51b8dc5163d2ff2bf04019f8bf7e3bd0e75bb654; From ad85094b293e40e7a2f831b0311a389d952ebd5e · fixed in 592a0e78ab08f6373c40912365759d8a066e7711; From ad85094b293e40e7a2f831b0311a389d952ebd5e · fixed in fdbb8e55578b4ab647fa58827a9dd8730d7f4add; From ad85094b293e40e7a2f831b0311a389d952ebd5e · fixed in d57e67ea48e4d095052f2b14d8dd7593621f862f; From ad85094b293e40e7a2f831b0311a389d952ebd5e · fixed in f614bf0a64aa1cb7444d152a96798a6bf1d49e1f; From ad85094b293e40e7a2f831b0311a389d952ebd5e · fixed in 628f763aee0047ff44974388d6f70f75a763026b
- Linux Linux
4.12, 5.8
- KernelLinux
From 4.12.0 · fixed in 4.18; From 5.8.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5