Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: net: macb: fix NULL pointer dereference on unbind with fixed-link When the device tree describes a fixed-link and has no "mdio" child node, macb_mii_init() returns early without allocating the MDIO bus, leaving bp->mii_bus as NULL. Two cleanup paths then dereference this NULL bus: 1. On driver unbind, macb_remove() unconditionally calls mdiobus_unregister(bp->mii_bus), which oopses: Unable to handle kernel NULL pointer dereference at virtual address 00000000000004a8 pc : mdiobus_unregister+0x14/0xa4 lr : macb_remove+0x38/0xa4 Call trace: mdiobus_unregister+0x14/0xa4 (P) macb_remove+0x38/0xa4 platform_remove+0x20/0x30 device_release_driver_internal+0x1c8/0x224 unbind_store+0xb4/0xbc 2. On the probe error path in macb_probe(), reached when macb_mii_init() has succeeded but a subsequent step fails, the err_out_unregister_mdio label runs the same unconditional cleanup. mdiobus_unregister() and mdiobus_free() do not guard against a NULL bus, so guard the calls in both macb_remove() and the probe error path.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 831e19e565b5210930fa183730071f8290c61263 before afa224cabc0132ca414b9141b1a919ca2d318cd0; affected 81db1e52848694761a1aa162ce76198af9964ed8 before 054ad8e66025eb4778d840bef80c270646cebcd2; affected d0c3601f2c4e12e7689b0f46ebc17525250ea8c3 before f737d999fcb8f276d77b01ea4c2016ee01dad19b; affected d0c3601f2c4e12e7689b0f46ebc17525250ea8c3 before 5710f6a74f63cbba0e15cd75917234916181c9d4; affected d0c3601f2c4e12e7689b0f46ebc17525250ea8c3 before edb39c7666bb3924da761dfb417db85c1e5d8ad3; affected d0c3601f2c4e12e7689b0f46ebc17525250ea8c3 before 38b6be101006d3e7af972999f45d4f1e8250587a; affected cafa5942bd2df3d80e3eeb2deb4bc050f7761f3d; affected c81dcaa9cd0b66816c2ecb6c5df0b6afde9c7da5; affected 19088c5378c9fea54e552d8bc7418a3aa1e06990; affected 6.1.114 before 6.1.189; affected 6.6.58 before 6.6.158; affected 5.10.228 before 5.11; affected 5.15.169 before 5.16; affected 6.11.5 before 6.12 |
| Linux / Linux | affected 6.12; unaffected 0 before 6.12; unaffected 6.1.189 through 6.1.*; unaffected 6.6.158 through 6.6.*; unaffected 6.12.111 through 6.12.*; unaffected 6.18.53 through 6.18.*; unaffected 7.2.7 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/afa224cabc0132ca414b9141b1a919ca2d318cd0
- https://git.kernel.org/stable/c/054ad8e66025eb4778d840bef80c270646cebcd2
- https://git.kernel.org/stable/c/f737d999fcb8f276d77b01ea4c2016ee01dad19b
- https://git.kernel.org/stable/c/5710f6a74f63cbba0e15cd75917234916181c9d4
- https://git.kernel.org/stable/c/edb39c7666bb3924da761dfb417db85c1e5d8ad3
- https://git.kernel.org/stable/c/38b6be101006d3e7af972999f45d4f1e8250587a