Description
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().
Published: 2026-08-28
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via kernel crash
Action: Apply Update
AI Analysis

Impact

The vulnerability is a race condition in the Linux kernel’s device model. On calls to dev_has_sync_state(), the dev->driver pointer is read twice without protection by the device_lock(); one read is for a NULL test, the second dereferences the driver structure’s sync_state field. If a concurrent device unbind clears dev->driver while the function is executing, the kernel may dereference a stale or freed pointer, leading to a kernel crash. This can bring the entire operating system down, causing a denial‑of‑service.

Affected Systems

All Linux kernel implementations released before the commit that changes dev_has_sync_state() to use READ_ONCE() and the corresponding WRITE_ONCE() in device_set_driver() are affected. This includes every distribution kernel version that predates the patch. No specific version range is listed in the CVE data, so a vulnerability assessment should assume that any unpatched kernel is at risk.

Risk and Exploitability

A CVSS score of 7.8 is assigned, and the EPSS score is <1%, indicating a very low probability of exploitation in general. The flaw can be triggered by an attacker with the ability to initiate a race between normal device usage and a device unbind operation, which typically requires local access or device control. Based on the description, it is inferred that the attack vector is local. While the potential for exploitation is high enough to cause a system crash, there is no evidence of remote exploitation or privilege escalation. Consequently, the risk level is moderate to high for environments that allow unbind operations from untrusted contexts. Because the vulnerability is not listed in the CISA KEV catalog, no known wild exploits have been reported.

Generated by OpenCVE AI on August 31, 2026 at 15:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Roll the Linux kernel to a version that incorporates the patch which uses READ_ONCE() for dev->driver in dev_has_sync_state() and the matching WRITE_ONCE() in device_set_driver().
  • If an immediate kernel update is not possible, restrict or disable hotplug or unbind operations for critical devices while they are in use to eliminate the race window.
  • Enable automatic kernel updates or schedule regular kernel upgrades to ensure the kernel patch is applied without manual intervention.

Generated by OpenCVE AI on August 31, 2026 at 15:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 31 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476
References
Metrics threat_severity

None

threat_severity

Moderate


Sat, 29 Aug 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Fri, 28 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 28 Aug 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Fri, 28 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description 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().
Title driver core: use READ_ONCE() for dev->driver in dev_has_sync_state()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-29T06:22:03.959Z

Reserved: 2026-08-26T14:34:25.783Z

Link: CVE-2026-80677

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T08:16:52.983

Modified: 2026-08-29T07:16:50.073

Link: CVE-2026-80677

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-28T00:00:00Z

Links: CVE-2026-80677 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T16:00:06Z

Weaknesses