CVE-2026-31732
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa w funkcji gpiochip_add_data_with_key() wykryto wyciek zasobów na ścieżkach obsługi błędów. Po zmianie z commit aab5c6f20023, pole `gdev->dev.release` nie jest ustawiane, co powoduje, że licznik odwołań do `gdev->dev` nie jest zmniejszany przy błędach. Łatka dodaje odpowiednie zwalnianie referencji oraz porządkuje kod, aby uniknąć podwójnego zwolnienia pamięci.
Ocena ryzyka
Wyciek zasobów może prowadzić do stopniowego wyczerpania pamięci jądra, co w skrajnych przypadkach może spowodować odmowę usługi (DoS) na systemach intensywnie korzystających z GPIO.
Rekomendacja
Należy niezwłocznie zaktualizować jądro Linuksa do wersji zawierającej poprawkę (commit naprawiający CVE-2026-31732). Dla systemów produkcyjnych zaleca się zastosowanie łatki bezpieczeństwa po przetestowaniu.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: gpio: Fix resource leaks on errors in gpiochip_add_data_with_key() Since commit aab5c6f20023 ("gpio: set device type for GPIO chips"), `gdev->dev.release` is unset. As a result, the reference count to `gdev->dev` isn't dropped on the error handling paths. Drop the reference on errors. Also reorder the instructions to make the error handling simpler. Now gpiochip_add_data_with_key() roughly looks like: >>> Some memory allocation. Go to ERR ZONE 1 on errors. >>> device_initialize(). gpiodev_release() takes over the responsibility for freeing the resources of `gdev->dev`. The subsequent error handling paths shouldn't go through ERR ZONE 1 again which leads to double free. >>> Some initialization mainly on `gdev`. >>> The rest of initialization. Go to ERR ZONE 2 on errors. >>> Chip registration success and exit. >>> ERR ZONE 2. gpio_device_put() and exit. >>> ERR ZONE 1.

