What happened
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.
Affected versions
Linux: a49d25364dfb9f8a64037488a39ab1f56c5fa419 through before 51b8dc5163d2ff2bf04019f8bf7e3bd0e75bb654 (git); ad85094b293e40e7a2f831b0311a389d952ebd5e through before fdbb8e55578b4ab647fa58827a9dd8730d7f4add (git); ad85094b293e40e7a2f831b0311a389d952ebd5e through before d57e67ea48e4d095052f2b14d8dd7593621f862f (git); ad85094b293e40e7a2f831b0311a389d952ebd5e through before f614bf0a64aa1cb7444d152a96798a6bf1d49e1f (git); ad85094b293e40e7a2f831b0311a389d952ebd5e through before 628f763aee0047ff44974388d6f70f75a763026b (git); 4.12; 5.8 Fixed: See vendor advisory.
Why it matters
Review the vendor advisory and exposure of the affected product to determine operational impact.
Detection & mitigation
- Apply vendor-provided updates or mitigations.
- Review affected product exposure and access logs.
Public PoC references
No public PoC reference has passed the current publication threshold.