Description
In the Linux kernel, the following vulnerability has been resolved: gpiolib: cdev: fix NULL-pointer dereferences There are several places where we can crash the kernel by requesting lines, unbinding the GPIO device, then calling any of the system calls relevant to the GPIO character device's annonymous file descriptors: ioctl(), read(), poll(). While I observed it with the GPIO simulator, it will also happen for any of the GPIO devices that can be hot-unplugged - for instance any HID GPIO expander (e.g. CP2112). This affects both v1 and v2 uAPI. This fixes it partially by checking if gdev->chip is not NULL but it doesn't entirely remedy the situation as we still have a race condition in which another thread can remove the device after the check.
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
d7c51b47ac11e66f547b55640405c1c474642d72 to < 6d79546622baab843172b52c3af035f83c1b21dfaffectedd7c51b47ac11e66f547b55640405c1c474642d72 to < 7c755a2d6df511eeb5afba966ac28140f9ea5063affectedd7c51b47ac11e66f547b55640405c1c474642d72 to < d66f68ac9e7ba46b6b90fbe25155723f2126088aaffectedd7c51b47ac11e66f547b55640405c1c474642d72 to < ac6ce3cd7a3e10a2e37b8970bab81b4d33d5cfc3affectedd7c51b47ac11e66f547b55640405c1c474642d72 to < 533aae7c94dbc2b14301cfd68ae7e0e90f0c8438affected
Linux Linux
Default version status: affected
4.8affected0 to < 4.8unaffected5.10.163 to ≤ 5.10.*unaffected5.15.86 to ≤ 5.15.*unaffected6.0.16 to ≤ 6.0.*unaffected6.1.2 to ≤ 6.1.*unaffected6.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/6d79546622baab843172b52c3af035f83c1b21df ↗
- https://git.kernel.org/stable/c/7c755a2d6df511eeb5afba966ac28140f9ea5063 ↗
- https://git.kernel.org/stable/c/d66f68ac9e7ba46b6b90fbe25155723f2126088a ↗
- https://git.kernel.org/stable/c/ac6ce3cd7a3e10a2e37b8970bab81b4d33d5cfc3 ↗
- https://git.kernel.org/stable/c/533aae7c94dbc2b14301cfd68ae7e0e90f0c8438 ↗