CVE-2026-80677 PUBLISHED

driver core: use READ_ONCE() for dev->driver in dev_has_sync_state()

Assigner: Linux
Reserved: 26.08.2026 Published: 28.08.2026 Updated: 28.08.2026

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

driver core: use READ_ONCE() for dev->driver in dev_has_sync_state()

dev_has_sync_state() reads dev->driver twice without holding device_lock() -- once for the NULL check and once to dereference ->sync_state. Some callers only hold device_links_write_lock, which doesn't prevent a concurrent unbind from clearing dev->driver via device_unbind_cleanup().

Fix it by reading dev->driver exactly once with READ_ONCE(), pairing with the WRITE_ONCE() in device_set_driver().

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to 89789e4c141904506163dcb91c7289a074573931 (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to 51b3e1de53ee5b7775c7ff90e67fdb2665fce938 (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to 358697929351f619143f59c6a8a15a4994748b79 (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to 5e79e0180515b31b2e2244dc3d256fd8b5a07021 (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to 860885fcd2611bca8c28dac8b2c1c7ff160f763e (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to cc77f0d91e3214e4292208f02a1dc09a31f9aac7 (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to 9b0f4082a09760939588135d60a8e9cc994bfa3e (excl.)
  • affected from ac338acf514e7b578fa9e3742ec2c292323b4c1a to e9506871a8ea304cde48ff4a57226df2aadddae3 (excl.)
  • Version 6d88283a49425eb469aa60ffebe76539e73c933e is affected
  • affected from 5.5.13 to 5.6 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.6 is affected
  • unaffected from 0 to 5.6 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References