CVE-2026-45869 PUBLISHED

power: supply: wm97xx: Fix NULL pointer dereference in power_supply_changed()

Assigner: Linux
Reserved: 13.05.2026 Published: 27.05.2026 Updated: 27.05.2026

In the Linux kernel, the following vulnerability has been resolved:

power: supply: wm97xx: Fix NULL pointer dereference in power_supply_changed()

In probe(), request_irq() is called before allocating/registering a power_supply handle. If an interrupt is fired between the call to request_irq() and power_supply_register(), the power_supply handle will be used uninitialized in power_supply_changed() in wm97xx_bat_update() (triggered from the interrupt handler). This will lead to a NULL pointer dereference since

Fix this racy NULL pointer dereference by making sure the IRQ is requested after the registration of the power_supply handle. Since the IRQ is the last thing requests in the probe() now, remove the error path for freeing it. Instead add one for unregistering the power_supply handle when IRQ request fails.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to 3d7b5391bb95505b3581c1fb77150c467ab92864 (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to 438f9a303ea8b55162b2d5376490c2ab3ec165a0 (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to 9b7d77cb046b4487e8e511e04e62b6f416ce845c (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to 86183153c299e8bb1839e717286d6c6f39508a59 (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to 93bdf715d33cf5ee01c58e8546c2469c71ce082a (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to c0def811ad8d642dca9b6d31a198cc39f5f90837 (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to dfaf235d5a6b60cbf115a14a656946303ad007b7 (excl.)
  • affected from 7c87942aef52d2120e95ff1dec739998b9f95a78 to 39fe0eac6d755ef215026518985fcf8de9360e9e (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.32 is affected
  • unaffected from 0 to 2.6.32 (excl.)
  • unaffected from 5.10.252 to 5.10.* (incl.)
  • unaffected from 5.15.202 to 5.15.* (incl.)
  • unaffected from 6.1.165 to 6.1.* (incl.)
  • unaffected from 6.6.128 to 6.6.* (incl.)
  • unaffected from 6.12.75 to 6.12.* (incl.)
  • unaffected from 6.18.14 to 6.18.* (incl.)
  • unaffected from 6.19.4 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References