regulator: core: fix resource leak in regulator_register() (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.26 % · percentile 18 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Deferred
Description
In the Linux kernel, the following vulnerability has been resolved: regulator: core: fix resource leak in regulator_register() I got some resource leak reports while doing fault injection test: OF: ERROR: memory leak, expected refcount 1 instead of 100, of_node_get()/of_node_put() unbalanced - destroy cset entry: attach overlay node /i2c/pmic@64/regulators/buck1 unreferenced object 0xffff88810deea000 (size 512): comm "490-i2c-rt5190a", pid 253, jiffies 4294859840 (age 5061.046s) hex dump (first 32 bytes): 00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N.......... ff ff ff ff ff ff ff ff a0 1e 00 a1 ff ff ff ff ................ backtrace: [<00000000d78541e2>] kmalloc_trace+0x21/0x110 [<00000000b343d153>] device_private_init+0x32/0xd0 [<00000000be1f0c70>] device_add+0xb2d/0x1030 [<00000000e3e6344d>] regulator_register+0xaf2/0x12a0 [<00000000e2f5e754>] devm_regulator_register+0x57/0xb0 [<000000008b898197>] rt5190a_probe+0x52a/0x861 [rt5190a_regulator] unreferenced object 0xffff88810b617b80 (size 32): comm "490-i2c-rt5190a", pid 253, jiffies 4294859904 (age 5060.983s) hex dump (first 32 bytes): 72 65 67 75 6c 61 74 6f 72 2e 32 38 36 38 2d 53 regulator.2868-S 55 50 50 4c 59 00 ff ff 29 00 00 00 2b 00 00 00 UPPLY...)...+... backtrace: [<000000009da9280d>] __kmalloc_node_track_caller+0x44/0x1b0 [<0000000025c6a4e5>] kstrdup+0x3a/0x70 [<00000000790efb69>] create_regulator+0xc0/0x4e0 [<0000000005ed203a>] regulator_resolve_supply+0x2d4/0x440 [<0000000045796214>] regulator_register+0x10b3/0x12a0 [<00000000e2f5e754>] devm_regulator_register+0x57/0xb0 [<000000008b898197>] rt5190a_probe+0x52a/0x861 [rt5190a_regulator] After calling regulator_resolve_supply(), the 'rdev->supply' is set by set_supply(), after this set, in the error path, the resources need be released, so call regulator_put() to avoid the leaks.
References
- https://git.kernel.org/stable/c/35593d60b1622834984c43add7646d4069671aa9
- https://git.kernel.org/stable/c/6a03c31d08f95dca9633a552de167b9e625833a8
- https://git.kernel.org/stable/c/c4c64d8abd656b9807b63178750fa91454602b86
- https://git.kernel.org/stable/c/90b713aadc1240bf2dd03d610d6c1d016a9123a2
- https://git.kernel.org/stable/c/f86b2f216636790d5922458578825e4628fb570f
- https://git.kernel.org/stable/c/ba62319a42c50e6254e98b3f316464fac8e77968
European references
- ENISA EUVD · EUVD-2022-55765
- GCVE · GCVE-0-2022-50724
CERT-FR advisories
- CERTFR-2026-AVI-0225 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0170 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0108 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected 0120ec32a7774b5061ced1a9a7ff833edd8b4cb6 < 35593d60b1622834984c43add7646d4069671aa9 ; affected aea6cb99703e17019e025aa71643b4d3e0a24413 < 6a03c31d08f95dca9633a552de167b9e625833a8 ; affected aea6cb99703e17019e025aa71643b4d3e0a24413 < c4c64d8abd656b9807b63178750fa91454602b86 ; affected aea6cb99703e17019e025aa71643b4d3e0a24413 < 90b713aadc1240bf2dd03d610d6c1d016a9123a2 ; affected aea6cb99703e17019e025aa71643b4d3e0a24413 < f86b2f216636790d5922458578825e4628fb570f ; affected aea6cb99703e17019e025aa71643b4d3e0a24413 < ba62319a42c50e6254e98b3f316464fac8e77968 |
| Linux · Linux | affected 5.10 ; unaffected 0 < 5.10 ; unaffected 5.4.229 ≤ 5.4.* ; unaffected 5.10.163 ≤ 5.10.* ; unaffected 5.15.86 ≤ 5.15.* ; unaffected 6.0.16 ≤ 6.0.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |