Executive brief
A vulnerability was identified in the Linux kernel's pin control (pinctrl) subsystem, which manages how hardware pins are configured. A technical error in how the system tracks resource usage could allow a local user to cause a resource leak. Over time, this could lead to system instability or a denial-of-service condition where the operating system becomes unresponsive.
Technical details
A reference count leak exists in the pinctrl_dt_to_map() function within drivers/pinctrl/devicetree.c of the Linux kernel. The vulnerability occurs when the kernel fails to allocate the 'propname' buffer; in this error path, it fails to drop the reference count previously acquired. An attacker with local access could potentially trigger this failure path to exhaust kernel resources. The fix involves ensuring pinctrl_dt_free_maps() is called during allocation failures to properly release the reference. Patches have been backported to multiple stable kernel branches including 4.19.y, 5.4.y, 5.10.y, 5.15.y, 6.1.y, 6.6.y, and 6.8.y.
Affected products
- Linux Linux Kernel 4.9.334 to 4.10; 4.14.300 to 4.15; 4.19.267 to 4.19.314; 5.4.225 to 5.4.276; 5.10.156 to 5.10.217; 5.15.80 to 5.15.159; 6.0.10 to 6.1.91; 6.2 to 6.6.31; 6.7 to 6.8.10; 6.9-rc1 to 6.9-rc6
Timeline
- 2024-04-15: patched: Initial patch submitted by Zeng Heng
- 2024-05-30: disclosed: CVE published
References
- https://git.kernel.org/stable/c/026e24cf31733dbd97f41cc9bc5273ace428eeec
- https://git.kernel.org/stable/c/06780473cb8a858d1d6cab2673e021b072a852d1
- https://git.kernel.org/stable/c/35ab679e8bb5a81a4f922d3efbd43e32bce69274
- https://git.kernel.org/stable/c/47d253c485491caaf70d8cd8c0248ae26e42581f
- https://git.kernel.org/stable/c/518d5ddafeb084d6d9b1773ed85164300037d0e6
- https://git.kernel.org/stable/c/76aa2440deb9a35507590f2c981a69a57ecd305d
- https://git.kernel.org/stable/c/a0cedbcc8852d6c77b00634b81e41f17f29d9404