usb: ulpi: fix memory leak on ulpi_register() error paths
In the Linux kernel, the following vulnerability has been resolved: usb: ulpi: fix memory leak on ulpi_register() error paths Commit 01af542392b5 ("usb: ulpi: fix double free in ulpi_register_interface() error path") removed kfree(ulpi) from ulpi_register_interface() to fix a double-free when device_register() fails. But when ulpi_of_register() or ulpi_read_id() fail before device_register() is called, the ulpi allocation is leaked. Add kfree(ulpi) on both error paths to properly clean up the allocation.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.258, 5.15.209, 6.1.175, 6.12.88, 6.18.30, 6.6.140, 7.0.7
- CVEs
- CVE-2026-46109
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 8 Nov 2026, 02:57 UTC · Revision 1
Source evidence
usb: ulpi: fix memory leak on ulpi_register() error paths
core-osv · Original sourcePublished 28 May 2026, 09:35 UTC
In the Linux kernel, the following vulnerability has been resolved: usb: ulpi: fix memory leak on ulpi_register() error paths Commit 01af542392b5 ("usb: ulpi: fix double free in ulpi_register_interface() error path") removed kfree(ulpi) from ulpi_register_interface() to fix a double-free when device_register() fails. But when ulpi_of_register() or ulpi_read_id() fail before device_register() is called, the ulpi allocation is leaked. Add kfree(ulpi) on both error paths to properly clean up the allocation.
osv:CVE-2026-46109
Kernel
Fixed versions: 5.10.258, 5.15.209, 6.1.175, 6.6.140, 6.12.88, 6.18.30, 7.0.7
Complete source record
{
"id": "5af14fe94ea950bc3fd58ba55665529772bd83de10e388b3d26df475ee7f4c8c",
"url": "https://osv.dev/vulnerability/CVE-2026-46109",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "usb: ulpi: fix memory leak on ulpi_register() error paths",
"summary": "In the Linux kernel, the following vulnerability has been resolved: usb: ulpi: fix memory leak on ulpi_register() error paths Commit 01af542392b5 (\"usb: ulpi: fix double free in ulpi_register_interface() error path\") removed kfree(ulpi) from ulpi_register_interface() to fix a double-free when device_register() fails. But when ulpi_of_register() or ulpi_read_id() fail before device_register() is called, the ulpi allocation is leaked. Add kfree(ulpi) on both error paths to properly clean up the allocation.",
"evidence": "osv:CVE-2026-46109",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.258",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.209",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.175",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.140",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.88",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.30",
"evidence": "/affected/1/ranges"
},
{
"value": "7.0.7",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2026-46109",
"aliases": [
"CVE-2026-46109"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "2f70ba9dae13a190673cc3f9b4aad52179738f60"
},
{
"fixed": "0c2c0c6820fe96fa4be0a0499f8d3f3321b9af6c"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "ee248e6e941e4f2e634df2bd43e5f1ef810ab6df"
},
{
"fixed": "f1b855c00988a9cb41134cab7cf9faedba775dd9"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "272a9b26c336a295e4e209157fed809706c1b1f7"
},
{
"fixed": "7bd61ed0bf9f4f1f2673d489b3bda1555b48d054"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "aaeae6533d77e6ed4def85baec01e2815ebbef61"
},
{
"fixed": "b0c0d44adb55c66663886cb6e30ee92cbb0f5385"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "8763f8317bb389aded32a32b08f6751cfff657d2"
},
{
"fixed": "be2c1d825f54277472c87019e82013ac534ddc4c"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "38c28fe25611099230f0965c925499bfcf46a795"
},
{
"fixed": "2a71e01b2cf9b4329ff67102c1bea7448c2a2d2d"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "01af542392b5d41fd659d487015a71f627accce3"
},
{
"fixed": "f30ccfc2985590b33a23a3d8bed7ca16c0af551b"
},
{
"fixed": "0b9fcab1b8608d429e5f239afb197de928d4de7d"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.10.253"
},
{
"fixed": "5.10.258"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.15.203"
},
{
"fixed": "5.15.209"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.1.168"
},
{
"fixed": "6.1.175"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.6.134"
},
{
"fixed": "6.6.140"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.12.81"
},
{
"fixed": "6.12.88"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.18.22"
},
{
"fixed": "6.18.30"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.19.12"
},
{
"fixed": "6.20"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "a6e5461f076c2ef63159f18e5cdbd30b50f0bc15"
}
]
}
],
"versions": [
"v5.10.257",
"v5.10.256",
"v5.10.255",
"v5.10.254",
"v5.10.253",
"v5.15.208",
"v5.15.207",
"v5.15.206",
"v5.15.205",
"v5.15.204",
"v5.15.203",
"v6.1.174",
"v6.1.173",
"v6.1.172",
"v6.1.171",
"v6.1.170",
"v6.1.169",
"v6.1.168",
"v6.6.139",
"v6.6.138",
"v6.6.137",
"v6.6.136",
"v6.6.135",
"v6.6.134",
"v6.12.87",
"v6.12.86",
"v6.12.85",
"v6.12.84",
"v6.12.83",
"v6.12.82",
"v6.12.81",
"v6.18.29",
"v6.18.28",
"v6.18.27",
"v6.18.26",
"v6.18.25",
"v6.18.24",
"v6.18.23",
"v6.18.22",
"v6.19.14",
"v6.19.13",
"v6.19.12"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-46109.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "5.10.258"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.209"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.175"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.140"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.88"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.30"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.19.0"
},
{
"fixed": "7.0.7"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-46109.json"
}
}
],
"modified": "2026-10-28T02:30:53.402926803Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/0b9fcab1b8608d429e5f239afb197de928d4de7d",
"https://git.kernel.org/stable/c/0c2c0c6820fe96fa4be0a0499f8d3f3321b9af6c",
"https://git.kernel.org/stable/c/2a71e01b2cf9b4329ff67102c1bea7448c2a2d2d",
"https://git.kernel.org/stable/c/7bd61ed0bf9f4f1f2673d489b3bda1555b48d054",
"https://git.kernel.org/stable/c/b0c0d44adb55c66663886cb6e30ee92cbb0f5385",
"https://git.kernel.org/stable/c/be2c1d825f54277472c87019e82013ac534ddc4c",
"https://git.kernel.org/stable/c/f1b855c00988a9cb41134cab7cf9faedba775dd9",
"https://git.kernel.org/stable/c/f30ccfc2985590b33a23a3d8bed7ca16c0af551b",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46109.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-46109",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46109.json"
}
},
"related_cves": [
{
"value": "CVE-2026-46109",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 521998,
"published_at": "2026-05-28T09:35:16.409+00:00"
}