Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
a49d25364dfb9f8a64037488a39ab1f56c5fa419 to < 51b8dc5163d2ff2bf04019f8bf7e3bd0e75bb654affectedad85094b293e40e7a2f831b0311a389d952ebd5e to < 5bed166be3054f9ebb527dbce7158677085eea59affectedad85094b293e40e7a2f831b0311a389d952ebd5e to < 592a0e78ab08f6373c40912365759d8a066e7711affectedad85094b293e40e7a2f831b0311a389d952ebd5e to < fdbb8e55578b4ab647fa58827a9dd8730d7f4addaffectedad85094b293e40e7a2f831b0311a389d952ebd5e to < d57e67ea48e4d095052f2b14d8dd7593621f862faffectedad85094b293e40e7a2f831b0311a389d952ebd5e to < f614bf0a64aa1cb7444d152a96798a6bf1d49e1faffectedad85094b293e40e7a2f831b0311a389d952ebd5e to < 628f763aee0047ff44974388d6f70f75a763026baffected
Linux Linux
Default version status: affected
4.12affected5.8affected0 to < 4.12unaffected4.18 to < 5.8unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/51b8dc5163d2ff2bf04019f8bf7e3bd0e75bb654 ↗
- https://git.kernel.org/stable/c/5bed166be3054f9ebb527dbce7158677085eea59 ↗
- https://git.kernel.org/stable/c/592a0e78ab08f6373c40912365759d8a066e7711 ↗
- https://git.kernel.org/stable/c/fdbb8e55578b4ab647fa58827a9dd8730d7f4add ↗
- https://git.kernel.org/stable/c/d57e67ea48e4d095052f2b14d8dd7593621f862f ↗
- https://git.kernel.org/stable/c/f614bf0a64aa1cb7444d152a96798a6bf1d49e1f ↗
- https://git.kernel.org/stable/c/628f763aee0047ff44974388d6f70f75a763026b ↗