phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode
In the Linux kernel, the following vulnerability has been resolved: phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode When transitioning from USB_ROLE_DEVICE to USB_ROLE_NONE, the code assumed that the regulator should be disabled. However, if the regulator is marked as always-on, regulator_is_enabled() continues to return true, leading to an incorrect attempt to disable a regulator which is not enabled. This can result in warnings such as: [ 250.155624] WARNING: CPU: 1 PID: 7326 at drivers/regulator/core.c:3004 _regulator_disable+0xe4/0x1a0 [ 250.155652] unbalanced disables for VIN_SYS_5V0 To fix this, we move the regulator control logic into tegra186_xusb_padctl_id_override() function since it's directly related to the ID override state. The regulator is now only disabled when the role transitions from USB_ROLE_HOST to USB_ROLE_NONE, by checking the VBUS_ID register. This ensures that regulator enable/disable operations are properly balanced and only occur when actually transitioning to/from host mode.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.241, 5.15.190, 6.1.147, 6.12.40, 6.15.8, 6.6.100
- CVEs
- CVE-2025-38535
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 05:31 UTC · Revision 1
Source evidence
phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode
core-osv · Original sourcePublished 16 Aug 2025, 11:12 UTC
In the Linux kernel, the following vulnerability has been resolved: phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode When transitioning from USB_ROLE_DEVICE to USB_ROLE_NONE, the code assumed that the regulator should be disabled. However, if the regulator is marked as always-on, regulator_is_enabled() continues to return true, leading to an incorrect attempt to disable a regulator which is not enabled. This can result in warnings such as: [ 250.155624] WARNING: CPU: 1 PID: 7326 at drivers/regulator/core.c:3004 _regulator_disable+0xe4/0x1a0 [ 250.155652] unbalanced disables for VIN_SYS_5V0 To fix this, we move the regulator control logic into tegra186_xusb_padctl_id_override() function since it's directly related to the ID override state. The regulator is now only disabled when the role transitions from USB_ROLE_HOST to USB_ROLE_NONE, by checking the VBUS_ID register. This ensures that regulator enable/disable operations are properly balanced and only occur when actually transitioning to/from host mode.
osv:CVE-2025-38535
Kernel
Fixed versions: 5.10.241, 5.15.190, 6.1.147, 6.6.100, 6.12.40, 6.15.8
Complete source record
{
"id": "7039e573fc14468df155998222caec543c24b2453ccd7d0941331705277635fe",
"url": "https://osv.dev/vulnerability/CVE-2025-38535",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode",
"summary": "In the Linux kernel, the following vulnerability has been resolved: phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode When transitioning from USB_ROLE_DEVICE to USB_ROLE_NONE, the code assumed that the regulator should be disabled. However, if the regulator is marked as always-on, regulator_is_enabled() continues to return true, leading to an incorrect attempt to disable a regulator which is not enabled. This can result in warnings such as: [ 250.155624] WARNING: CPU: 1 PID: 7326 at drivers/regulator/core.c:3004 _regulator_disable+0xe4/0x1a0 [ 250.155652] unbalanced disables for VIN_SYS_5V0 To fix this, we move the regulator control logic into tegra186_xusb_padctl_id_override() function since it's directly related to the ID override state. The regulator is now only disabled when the role transitions from USB_ROLE_HOST to USB_ROLE_NONE, by checking the VBUS_ID register. This ensures that regulator enable/disable operations are properly balanced and only occur when actually transitioning to/from host mode.",
"evidence": "osv:CVE-2025-38535",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.241",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.190",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.147",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.100",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.40",
"evidence": "/affected/1/ranges"
},
{
"value": "6.15.8",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2025-38535",
"aliases": [
"CVE-2025-38535"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "49d46e3c7e597e8b00c6fc16e6fd7a92044f4371"
},
{
"fixed": "ceb645ac6ce052609ee5c8f819a80e8881789b04"
},
{
"fixed": "cdcb0ffd6448f6be898956913a42bd08e59fb2ae"
},
{
"fixed": "1bb85b5c2bd43b687c3d54eb6328917f90dd38fc"
},
{
"fixed": "5367cdeb75cb6c687ca468450bceb2602ab239d8"
},
{
"fixed": "ec7f98ff05f0649af0adeb4808c7ba23d6111ef9"
},
{
"fixed": "eaa420339658615d26c1cc95cd6cf720b9aebfca"
},
{
"fixed": "cefc1caee9dd06c69e2d807edc5949b329f52b22"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38535.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.7.0"
},
{
"fixed": "5.10.241"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.190"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.147"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.100"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.40"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.15.8"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38535.json"
}
}
],
"modified": "2026-10-28T02:30:26.113831478Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/1bb85b5c2bd43b687c3d54eb6328917f90dd38fc",
"https://git.kernel.org/stable/c/5367cdeb75cb6c687ca468450bceb2602ab239d8",
"https://git.kernel.org/stable/c/cdcb0ffd6448f6be898956913a42bd08e59fb2ae",
"https://git.kernel.org/stable/c/ceb645ac6ce052609ee5c8f819a80e8881789b04",
"https://git.kernel.org/stable/c/cefc1caee9dd06c69e2d807edc5949b329f52b22",
"https://git.kernel.org/stable/c/eaa420339658615d26c1cc95cd6cf720b9aebfca",
"https://git.kernel.org/stable/c/ec7f98ff05f0649af0adeb4808c7ba23d6111ef9",
"https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html",
"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38535.json",
"https://nvd.nist.gov/vuln/detail/CVE-2025-38535",
"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/2025/38xxx/CVE-2025-38535.json"
}
},
"related_cves": [
{
"value": "CVE-2025-38535",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 492749,
"published_at": "2025-08-16T11:12:27.873+00:00"
}