Description
In the Linux kernel, the following vulnerability has been resolved: i3c: master: Fix device_register() error path When device_register() fails in i3c_master_register_new_i3c_devs(), put_device() is called to drop the reference taken by device_register(). That drops the last reference, so the device's release callback i3c_device_release() runs and frees the i3c_device. Two problems follow from that: i3c_device_release() does WARN_ON(i3cdev->desc), so it warns because desc->dev->desc still points back at the descriptor. Clear it before calling put_device(). After put_device() frees the i3c_device, desc->dev is left pointing at freed memory, so clear desc->dev as well. That prevents, for example, i3c_master_unregister_i3c_devs() seeing desc->dev as non-NULL and dereferencing it.
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
1832ed55df45f4145335ad992fb83813cdc58b5d to < 5bf498623f8397d45f85f14cd631c5e5a565c2fbaffectedd48fe8d98171e0fffdeaa8b37ce0a6444bff819b to < 20a2b6df91fd782ef2ff551febef594d0b46a9a7affected174ae0a3b89e7804e4ea3d31bd83d6e43f39568c to < a14dbdf471001dd0601b0c491184990c178a199caffectede49a51a96b531f1b4bcd8d358e645b6c74ef67e6 to < d22ad96f1a0c89e0ba66a2facc7430f0923919e3affectedcab63f64887616e3c4e31cfd8103320be6ebc8d3 to < 7f8e2c4f3704d9774bb26b49b1ad6a60ae57d4a0affectedcab63f64887616e3c4e31cfd8103320be6ebc8d3 to < 7ef12e1dd06e442eebf370f6e53c41bd056d0f22affectedcab63f64887616e3c4e31cfd8103320be6ebc8d3 to < 6ecf17bf5fe8da51a6e3fc9e03a76898fcc5c6cfaffectedcab63f64887616e3c4e31cfd8103320be6ebc8d3 to < 74be657d98a8d684c0475f3cbd450ef2a30ffc73affected204beeb509d37669de34560e83bb8abffe7ee63aaffectedb24cf43d9babf1265a2bb0ae8d198267cef43b83affected5.10.201 to < 5.10.270affected5.15.139 to < 5.15.221affected6.1.63 to < 6.1.188affected6.6.2 to < 6.6.157affected5.4.261 to < 5.5affected6.5.12 to < 6.6affected
Linux Linux
Default version status: affected
6.7affected0 to < 6.7unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/5bf498623f8397d45f85f14cd631c5e5a565c2fb ↗
- https://git.kernel.org/stable/c/20a2b6df91fd782ef2ff551febef594d0b46a9a7 ↗
- https://git.kernel.org/stable/c/a14dbdf471001dd0601b0c491184990c178a199c ↗
- https://git.kernel.org/stable/c/d22ad96f1a0c89e0ba66a2facc7430f0923919e3 ↗
- https://git.kernel.org/stable/c/7f8e2c4f3704d9774bb26b49b1ad6a60ae57d4a0 ↗
- https://git.kernel.org/stable/c/7ef12e1dd06e442eebf370f6e53c41bd056d0f22 ↗
- https://git.kernel.org/stable/c/6ecf17bf5fe8da51a6e3fc9e03a76898fcc5c6cf ↗
- https://git.kernel.org/stable/c/74be657d98a8d684c0475f3cbd450ef2a30ffc73 ↗