Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: net: mana: Guard mana_remove against double invocation If PM resume fails (e.g., mana_attach() returns an error), mana_probe() calls mana_remove(), which tears down the device and sets gd->gdma_context = NULL and gd->driver_data = NULL. However, a failed resume callback does not automatically unbind the driver. When the device is eventually unbound, mana_remove() is invoked a second time. Without a NULL check, it dereferences gc->dev with gc == NULL, causing a kernel panic. Add an early return if gdma_context or driver_data is NULL so the second invocation is harmless. Move the dev = gc->dev assignment after the guard so it cannot dereference NULL.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 635096a86edb067d55a1e04b4a918f5c6dac0c51 before 793bf1f4e469c51d0e39199823da5e1de85a2741; affected 635096a86edb067d55a1e04b4a918f5c6dac0c51 before 8ee85b75a72216c857c39457f6595709c4c9f856; affected 635096a86edb067d55a1e04b4a918f5c6dac0c51 before a1ddfd2c0b7a48e5239fadd2a24cc4bc2cda90e6; affected 635096a86edb067d55a1e04b4a918f5c6dac0c51 before bbe5c3c570645a4ceb120979d3ee203a1583d775; affected 635096a86edb067d55a1e04b4a918f5c6dac0c51 before 50271d7ec95144d26808025b508f463780517d3c |
| Linux / Linux | affected 5.16; unaffected 0 before 5.16; unaffected 6.6.160 through 6.6.*; unaffected 6.12.114 through 6.12.*; unaffected 6.18.33 through 6.18.*; unaffected 7.0.10 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/793bf1f4e469c51d0e39199823da5e1de85a2741
- https://git.kernel.org/stable/c/8ee85b75a72216c857c39457f6595709c4c9f856
- https://git.kernel.org/stable/c/a1ddfd2c0b7a48e5239fadd2a24cc4bc2cda90e6
- https://git.kernel.org/stable/c/bbe5c3c570645a4ceb120979d3ee203a1583d775
- https://git.kernel.org/stable/c/50271d7ec95144d26808025b508f463780517d3c