CVE-2022-50616

regulator: core: Use different devices for resource allocation and DT lookup

published December 8, 2025

CVSS
—
EPSS
0%
Percentile
8.9
In the wild
Unconfirmed
What it is

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

regulator: core: Use different devices for resource allocation and DT lookup

Following by the below discussion, there's the potential UAF issue

between regulator and mfd.

https://lore.kernel.org/all/[email protected]/

From the analysis of Yingliang

CPU A |CPU B

mt6370_probe() |

devm_mfd_add_devices() |

|mt6370_regulator_probe()

| regulator_register()

| //allocate init_data and add it to devres

| regulator_of_get_init_data()

i2c_unregister_device() |

device_del() |

devres_release_all() |

// init_data is freed |

release_nodes() |

| // using init_data causes UAF

| regulator_register()

It's common to use mfd core to create child device for the regulator.

In order to do the DT lookup for init data, the child that registered

the regulator would pass its parent as the parameter. And this causes

init data resource allocated to its parent, not itself. The issue happen

when parent device is going to release and regulator core is still doing

some operation of init data constraint for the regulator of child device.

To fix it, this patch expand 'regulator_register' API to use the

different devices for init data allocation and DT lookup.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00197 · 8.9th percentile
Published
2025-12-08T01:16Z
EPSS history
Timeline
  • 08 DEC 01:16Z
    regulator: core: Use different devices for resource allocation and DT lookup
    cvelistv5