CVE-2026-64241
Beschrijving NL
In de Linux kernel is de volgende kwetsbaarheid verholpen:
gpio: rockchip: teardown bugs en lekken van middelen
Pak verschillende demontageproblemen en lekken van hulpbronnen aan bij het verwijderen van de chauffeur
pad en foutafhandeling:
1. Debounce klok referentielek: De debounce klok (bank->db_clk) is
verkregen met behulp van_clk_get() die de referentie van de klok verhoogt
tellen, maar clk_put() wordt nooit aangeroepen. Registreer een devm-actie om
laat het schoon los op losbinden. Merk op dat van_clk_get(..., 1) blijft
noodzakelijk over devm_clk_get() omdat de DT-binding niet definieert
kloknamen, op naam gebaseerde opzoekingen uitgesloten. 2. Niet-geregistreerde geketende IRQ-handler: de geketende IRQ-handler is niet
losgekoppeld in remove(). Als een zwerfonderbreking wordt geactiveerd nadat de bestuurder
wordt verwijderd, probeert de kernel een oude handler uit te voeren, waardoor
tot paniek. Los dit op door de handler in te verwijderen(). 3. IRQ-domeinlek: het lineaire IRQ-domein en zijn generieke chips zijn
handmatig toegewezen tijdens de sonde, maar nooit verwijderd. Verwijder de IRQ
domein tijdens het afbreken van de driver om de bijbehorende generieke chips te bevrijden
en mappings. [Bartosz: stuur geen foutmelding bij devres allocatiefout]
Origineel (Engels) tonen
In the Linux kernel, the following vulnerability has been resolved:
gpio: rockchip: teardown bugs and resource leaks
Address several teardown issues and resource leaks in the driver's remove
path and error handling:
1. Debounce clock reference leak: The debounce clock (bank->db_clk) is
obtained using of_clk_get() which increments the clock's reference
count, but clk_put() is never called. Register a devm action to
cleanly release it on unbind. Note that of_clk_get(..., 1) remains
necessary over devm_clk_get() because the DT binding does not define
clock-names, precluding name-based lookup.
2. Unregistered chained IRQ handler: The chained IRQ handler is not
disconnected in remove(). If a stray interrupt fires after the driver
is removed, the kernel attempts to execute a stale handler, leading
to a panic. Fix this by clearing the handler in remove().
3. IRQ domain leak: The linear IRQ domain and its generic chips are
allocated manually during probe but never removed. Remove the IRQ
domain during driver teardown to free the associated generic chips
and mappings.
[Bartosz: don't emit an error message on devres allocation failure]