Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
831e19e565b5210930fa183730071f8290c61263 to < afa224cabc0132ca414b9141b1a919ca2d318cd0affected81db1e52848694761a1aa162ce76198af9964ed8 to < 054ad8e66025eb4778d840bef80c270646cebcd2affectedd0c3601f2c4e12e7689b0f46ebc17525250ea8c3 to < f737d999fcb8f276d77b01ea4c2016ee01dad19baffectedd0c3601f2c4e12e7689b0f46ebc17525250ea8c3 to < 5710f6a74f63cbba0e15cd75917234916181c9d4affectedd0c3601f2c4e12e7689b0f46ebc17525250ea8c3 to < edb39c7666bb3924da761dfb417db85c1e5d8ad3affectedd0c3601f2c4e12e7689b0f46ebc17525250ea8c3 to < 38b6be101006d3e7af972999f45d4f1e8250587aaffectedcafa5942bd2df3d80e3eeb2deb4bc050f7761f3daffectedc81dcaa9cd0b66816c2ecb6c5df0b6afde9c7da5affected19088c5378c9fea54e552d8bc7418a3aa1e06990affected6.1.114 to < 6.1.189affected6.6.58 to < 6.6.158affected5.10.228 to < 5.11affected5.15.169 to < 5.16affected6.11.5 to < 6.12affected
Linux Linux
Default version status: affected
6.12affected0 to < 6.12unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2.7 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
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 ↗