CVE-2026-74519

pinctrl: devicetree: don't free uninitialized dev_name on error path

State
Published
Severity
7.8 High
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

pinctrl: devicetree: don't free uninitialized dev_name on error path

dt_remember_or_free_map() duplicates dev_name for each map entry. If kstrdup_const() fails, dt_free_map() frees dev_name in all num_maps entries, including entries that have not been initialized.

Some pinctrl drivers, including pinctrl-imx, allocate the map with kmalloc() and leave dev_name for the core to initialize. The untouched entries therefore contain uninitialized data which is passed to kfree_const().

Reproduced on qemu's mcimx6ul-evk (pinctrl-imx) with failslab injection while binding the pinctrl-consuming device, under KASAN:

BUG: KASAN: double-free in dt_free_map+0x34/0xa4 Free of addr c425a900 by task init/1 kfree from dt_free_map+0x34/0xa4 dt_free_map from dt_remember_or_free_map+0x184/0x198 dt_remember_or_free_map from pinctrl_dt_to_map+0x33c/0x4c8 pinctrl_dt_to_map from create_pinctrl+0x9c/0x5c0

Initialize all dev_name fields to NULL before duplicating the device name, making the full-map cleanup safe after a partial failure.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • be4c60b563edee3712d392aaeb0943a768df7023 to before e3cfb22bad363bebcfd55d909e12d499cb8c5490Affected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before 1586423da2739a80871ef6240016fcb9c7339bfbAffected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before dec5f0a8080502908dec5e35597c7ae07d533a3bAffected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before 929f6396baade89999ec8a1281232c101cbc727dAffected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before 321fe3584a8298386938130d138191aa35040b75Affected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before ad0ad3c228b6f76fde10f32047e0ec5fbc109dc8Affected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before 9d00a5ac7cd3d32ae61140f4b8a62f136de84e7dAffected
  • be4c60b563edee3712d392aaeb0943a768df7023 to before 015b5bcbcb622b32317642be91a7f79aa5413649Affected
  • 03f69244302d7954f42f528ea2d45903ebbf59f3Affected
  • 77440c3a37203e3f4667d06e37f76ef3968d2d8cAffected
  • 679c4f27b8958b65bb51d1c3dfdbf3befe4a33a3Affected
  • f88ac1330779c5bfdd79f7d7f7d4d3343c782f92Affected
  • f739a699db7d5a5cf39ca3ce2c84e4fe4a8f4c5dAffected
  • 4.4.244 to before 4.5Affected
  • 4.9.244 to before 4.10Affected
  • 4.14.161 to before 4.15Affected
  • 4.19.92 to before 4.20Affected
  • 5.4.7 to before 5.5Affected
LinuxLinux
  • 5.5Affected
  • before 5.5Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.151 through 6.6.*Not affected
  • 6.12.103 through 6.12.*Not affected
  • 6.18.44 through 6.18.*Not affected
  • 7.1.8 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.