CVE-2026-31732: Linux kernel · gpio: Fix resource leaks on errors in gpiochip_add_data_with_key()
Affects Linux kernelSource GCVE Database
Not known to be exploited.
Data as of 11 Nov 2026, 22:20 UTC
Rated by Threat Radar · No CVSS score from NVD or the CNA
Thin evidence
One scorer or noneExploitation evidence
Disclosed: evidence found.
CVE published 1 May 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 11 Nov 2026.
Description
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.
References
- git.kernel.org/stable/c/a500e1837c4266ddb05b39b3e1cc71f49a43ffa5 (opens in a new tab)
- git.kernel.org/stable/c/f0cf9c7b7c281956cc0dec163132cd96f76e1d60 (opens in a new tab)
- git.kernel.org/stable/c/fb4584d2b324c522404c733c65840a1a6519ada8 (opens in a new tab)
- git.kernel.org/stable/c/16fdabe143fce2cbf89139677728e17e21b46c28 (opens in a new tab)