---
id: CVE-2026-74519
title: 'pinctrl: devicetree: don''t free uninitialized dev_name on error path'
summary: |-
  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_fre…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    e3cfb22bad363bebcfd55d909e12d499cb8c5490
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    1586423da2739a80871ef6240016fcb9c7339bfb
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    dec5f0a8080502908dec5e35597c7ae07d533a3b
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    929f6396baade89999ec8a1281232c101cbc727d
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    321fe3584a8298386938130d138191aa35040b75
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    ad0ad3c228b6f76fde10f32047e0ec5fbc109dc8
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    9d00a5ac7cd3d32ae61140f4b8a62f136de84e7d
  - >-
    Linux >= be4c60b563edee3712d392aaeb0943a768df7023 <
    015b5bcbcb622b32317642be91a7f79aa5413649
  - Linux 03f69244302d7954f42f528ea2d45903ebbf59f3
  - Linux 77440c3a37203e3f4667d06e37f76ef3968d2d8c
  - Linux 679c4f27b8958b65bb51d1c3dfdbf3befe4a33a3
  - Linux f88ac1330779c5bfdd79f7d7f7d4d3343c782f92
  - Linux f739a699db7d5a5cf39ca3ce2c84e4fe4a8f4c5d
  - Linux >= 4.4.244 < 4.5
  - Linux >= 4.9.244 < 4.10
  - Linux >= 4.14.161 < 4.15
  - Linux >= 4.19.92 < 4.20
  - Linux >= 5.4.7 < 5.5
  - Linux 5.5
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T18:58:57.723333Z'
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T19:05:52.543Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-74519'
references:
  - url: 'https://git.kernel.org/stable/c/e3cfb22bad363bebcfd55d909e12d499cb8c5490'
  - url: 'https://git.kernel.org/stable/c/1586423da2739a80871ef6240016fcb9c7339bfb'
  - url: 'https://git.kernel.org/stable/c/dec5f0a8080502908dec5e35597c7ae07d533a3b'
  - url: 'https://git.kernel.org/stable/c/929f6396baade89999ec8a1281232c101cbc727d'
  - url: 'https://git.kernel.org/stable/c/321fe3584a8298386938130d138191aa35040b75'
  - url: 'https://git.kernel.org/stable/c/ad0ad3c228b6f76fde10f32047e0ec5fbc109dc8'
  - url: 'https://git.kernel.org/stable/c/9d00a5ac7cd3d32ae61140f4b8a62f136de84e7d'
  - url: 'https://git.kernel.org/stable/c/015b5bcbcb622b32317642be91a7f79aa5413649'
tags:
  - cve.org
epss: 0.00146
epssPercentile: 0.03429
ingestedAt: '2026-10-16T19:46:24.349Z'
---

## Overview

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.

## Affected

- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < e3cfb22bad363bebcfd55d909e12d499cb8c5490`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < 1586423da2739a80871ef6240016fcb9c7339bfb`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < dec5f0a8080502908dec5e35597c7ae07d533a3b`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < 929f6396baade89999ec8a1281232c101cbc727d`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < 321fe3584a8298386938130d138191aa35040b75`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < ad0ad3c228b6f76fde10f32047e0ec5fbc109dc8`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < 9d00a5ac7cd3d32ae61140f4b8a62f136de84e7d`
- `Linux >= be4c60b563edee3712d392aaeb0943a768df7023 < 015b5bcbcb622b32317642be91a7f79aa5413649`
- `Linux 03f69244302d7954f42f528ea2d45903ebbf59f3`
- `Linux 77440c3a37203e3f4667d06e37f76ef3968d2d8c`
- `Linux 679c4f27b8958b65bb51d1c3dfdbf3befe4a33a3`
- `Linux f88ac1330779c5bfdd79f7d7f7d4d3343c782f92`
- `Linux f739a699db7d5a5cf39ca3ce2c84e4fe4a8f4c5d`
- `Linux >= 4.4.244 < 4.5`
- `Linux >= 4.9.244 < 4.10`
- `Linux >= 4.14.161 < 4.15`
- `Linux >= 4.19.92 < 4.20`
- `Linux >= 5.4.7 < 5.5`
- `Linux 5.5`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
