Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 1832ed55df45f4145335ad992fb83813cdc58b5d before 5bf498623f8397d45f85f14cd631c5e5a565c2fb; affected d48fe8d98171e0fffdeaa8b37ce0a6444bff819b before 20a2b6df91fd782ef2ff551febef594d0b46a9a7; affected 174ae0a3b89e7804e4ea3d31bd83d6e43f39568c before a14dbdf471001dd0601b0c491184990c178a199c; affected e49a51a96b531f1b4bcd8d358e645b6c74ef67e6 before d22ad96f1a0c89e0ba66a2facc7430f0923919e3; affected cab63f64887616e3c4e31cfd8103320be6ebc8d3 before 7f8e2c4f3704d9774bb26b49b1ad6a60ae57d4a0; affected cab63f64887616e3c4e31cfd8103320be6ebc8d3 before 7ef12e1dd06e442eebf370f6e53c41bd056d0f22; affected cab63f64887616e3c4e31cfd8103320be6ebc8d3 before 6ecf17bf5fe8da51a6e3fc9e03a76898fcc5c6cf; affected cab63f64887616e3c4e31cfd8103320be6ebc8d3 before 74be657d98a8d684c0475f3cbd450ef2a30ffc73; affected 204beeb509d37669de34560e83bb8abffe7ee63a; affected b24cf43d9babf1265a2bb0ae8d198267cef43b83; affected 5.10.201 before 5.10.270; affected 5.15.139 before 5.15.221; affected 6.1.63 before 6.1.188; affected 6.6.2 before 6.6.157; affected 5.4.261 before 5.5; affected 6.5.12 before 6.6 |
| Linux / Linux | affected 6.7; unaffected 0 before 6.7; unaffected 5.10.270 through 5.10.*; unaffected 5.15.221 through 5.15.*; unaffected 6.1.188 through 6.1.*; unaffected 6.6.157 through 6.6.*; unaffected 6.12.110 through 6.12.*; unaffected 6.18.52 through 6.18.*; unaffected 7.2.6 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
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