CVE-2023-53310

power: supply: axp288_fuel_gauge: Fix external_power_changed race

State
Published
Severity
4.7 Medium
Published
Sep 16, 2025
Updated
May 11, 2026
Reserved
Sep 16, 2025

Read the record on cve.org

Description

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

power: supply: axp288_fuel_gauge: Fix external_power_changed race

fuel_gauge_external_power_changed() dereferences info->bat, which gets sets in axp288_fuel_gauge_probe() like this:

info->bat = devm_power_supply_register(dev, &fuel_gauge_desc, &psy_cfg);

As soon as devm_power_supply_register() has called device_add() the external_power_changed callback can get called. So there is a window where fuel_gauge_external_power_changed() may get called while info->bat has not been set yet leading to a NULL pointer dereference.

Fixing this is easy. The external_power_changed callback gets passed the power_supply which will eventually get stored in info->bat, so fuel_gauge_external_power_changed() can simply directly use the passed in psy argument which is always valid.

Scores

CVSSScoreVectorSource
3.14.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Affected Products

ProductVersions
LinuxLinux
  • 30abb3d07929137bf72327560e1595508a692c4e to before 0456b912121e45b3ef54abe3135e5dcb541f956cAffected
  • 30abb3d07929137bf72327560e1595508a692c4e to before a636c6ba9ce898207f283271cb28511206ab739bAffected
  • 30abb3d07929137bf72327560e1595508a692c4e to before f8319774d6f1567d6e7d03653174ab0c82c5c66dAffected
LinuxLinux
  • 5.18Affected
  • before 5.18Not affected
  • 6.1.31 through 6.1.*Not affected
  • 6.3.5 through 6.3.*Not affected
  • 6.4 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.