{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-38111", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T04:51:23.985Z", "datePublished": "2025-07-03T08:35:20.643Z", "dateUpdated": "2026-08-05T11:59:38.446Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:59:38.446Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mdiobus: Fix potential out-of-bounds read/write access\n\nWhen using publicly available tools like 'mdio-tools' to read/write data\nfrom/to network interface and its PHY via mdiobus, there is no verification of\nparameters passed to the ioctl and it accepts any mdio address.\nCurrently there is support for 32 addresses in kernel via PHY_MAX_ADDR define,\nbut it is possible to pass higher value than that via ioctl.\nWhile read/write operation should generally fail in this case,\nmdiobus provides stats array, where wrong address may allow out-of-bounds\nread/write.\n\nFix that by adding address verification before read/write operation.\nWhile this excludes this access from any statistics, it improves security of\nread/write operation." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerability is reached only through a local `ioctl(SIOCGMIIREG/SIOCSMIIREG)` on a socket referencing a PHY-backed netdev; there is no path from received network packets.\nAC:L - A single ioctl with an attacker-chosen `phy_id` deterministically triggers the out-of-bounds access, with no race, no timing window, and no memory-layout precondition; the offset is fully attacker-controlled and the operation is repeatable in a tight loop.\nPR:L - The only gate is `ns_capable(net->user_ns, CAP_NET_ADMIN)`, a namespace-relative check satisfied by an unprivileged user owning a network namespace that contains a PHY-backed device (unprivileged LXC `lxc.net.type = phys`, delegated DSA/SR-IOV ports) or by any container granted NET_ADMIN.\nUI:N - The attacker performs the ioctl directly; no victim action, mount, or configuration change by another user is required.\nS:U - The corruption is confined to kernel memory within the same security authority; this is a standard local kernel memory-corruption bug with no VM, IOMMU, or hypervisor boundary crossed.\nC:H - The stats accounting is a read-modify-write on out-of-bounds memory spanning up to ~2 MB past the `mii_bus` allocation, and the resulting controlled corruption of adjacent kernel objects (device refcounts, pointers, driver private data) can be leveraged into an arbitrary kernel-memory read primitive.\nI:H - This is an out-of-bounds write: a repeatable 64-bit increment at an attacker-chosen offset, which lands on `mii_bus` fields such as `mdio_lock`, `parent`, the embedded `struct device`, and neighbouring slab objects — a classic path to pointer/refcount corruption and privilege escalation.\nA:H - Incrementing counters over arbitrary kernel memory corrupts mutexes, refcounts, and pointers, and far offsets can touch unmapped memory, reliably producing oopses, deadlocks, or a full kernel panic." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/phy/mdio_bus.c" ], "versions": [ { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "19c5875e26c4ed5686d82a7d8f7051385461b9eb", "status": "affected", "versionType": "git" }, { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "014ad9210373d2104f6ef10e6bb999a7a0a4c50e", "status": "affected", "versionType": "git" }, { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "73d478234a619f3476028cb02dee699c30ae8262", "status": "affected", "versionType": "git" }, { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "bab6bca0834cbb5be2a7cfe59ec6ad016ec72608", "status": "affected", "versionType": "git" }, { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "b02d9d2732483e670bc34cb233d28e1d43b15da4", "status": "affected", "versionType": "git" }, { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "049af7ac45a6b407748ee0995278fd861e36df8f", "status": "affected", "versionType": "git" }, { "version": "080bb352fad00d04995102f681b134e3754bfb6e", "lessThan": "0e629694126ca388916f059453a1c36adde219c4", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/phy/mdio_bus.c" ], "versions": [ { "version": "5.6", "status": "affected" }, { "version": "0", "lessThan": "5.6", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.239", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.186", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.142", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.94", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.34", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15.3", "lessThanOrEqual": "6.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.16", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "5.10.239" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "5.15.186" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "6.1.142" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "6.6.94" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "6.12.34" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "6.15.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.6", "versionEndExcluding": "6.16" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/19c5875e26c4ed5686d82a7d8f7051385461b9eb" }, { "url": "https://git.kernel.org/stable/c/014ad9210373d2104f6ef10e6bb999a7a0a4c50e" }, { "url": "https://git.kernel.org/stable/c/73d478234a619f3476028cb02dee699c30ae8262" }, { "url": "https://git.kernel.org/stable/c/bab6bca0834cbb5be2a7cfe59ec6ad016ec72608" }, { "url": "https://git.kernel.org/stable/c/b02d9d2732483e670bc34cb233d28e1d43b15da4" }, { "url": "https://git.kernel.org/stable/c/049af7ac45a6b407748ee0995278fd861e36df8f" }, { "url": "https://git.kernel.org/stable/c/0e629694126ca388916f059453a1c36adde219c4" } ], "title": "net/mdiobus: Fix potential out-of-bounds read/write access", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html" }, { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T17:34:13.486Z" } }, { "x_adpType": "supplier", "providerMetadata": { "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e", "shortName": "siemens-SADP", "dateUpdated": "2026-07-14T12:41:29.683Z" }, "affected": [ { "vendor": "Siemens", "product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP", "versions": [ { "status": "affected", "version": "V3.1.5", "lessThan": "*", "versionType": "custom" } ], "defaultStatus": "unknown" }, { "vendor": "Siemens", "product": "SIMATIC S7-1500 CPU 1518-4 PN/DP MFP", "versions": [ { "status": "affected", "version": "V3.1.5", "lessThan": "*", "versionType": "custom" } ], "defaultStatus": "unknown" }, { "vendor": "Siemens", "product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP", "versions": [ { "status": "affected", "version": "V3.1.5", "lessThan": "*", "versionType": "custom" } ], "defaultStatus": "unknown" }, { "vendor": "Siemens", "product": "SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP", "versions": [ { "status": "affected", "version": "V3.1.5", "lessThan": "*", "versionType": "custom" } ], "defaultStatus": "unknown" }, { "vendor": "Siemens", "product": "SIPLUS S7-1500 CPU 1518-4 PN/DP MFP", "versions": [ { "status": "affected", "version": "V3.1.5", "lessThan": "*", "versionType": "custom" } ], "defaultStatus": "unknown" } ], "references": [ { "url": "https://cert-portal.siemens.com/productcert/html/ssa-082556.html" } ] } ] } }