CVE-2026-31527
High · 7.8CVSS
7.8
EPSS
0.2%
Published
Apr 22, 2026
CISA due date
—
Cloudanix analysis
A flaw in the Linux operating system could let someone who already has limited access to a machine crash it or possibly take full control unless the kernel is updated.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2026-31527 is a Linux kernel use-after-free flaw in the platform driver matching path. During driver probing through __driver_attach(), the bus match() callback can access a device's driver_override field without holding the device lock. If that field is modified or freed concurrently, the kernel may dereference stale memory. Depending on heap state and available primitives, this can lead to kernel memory corruption, local privilege escalation, information disclosure, or denial of service. The CVSS vector indicates local access, low attack complexity, low privileges required, no user interaction, and high confidentiality, integrity, and availability impact.
Why it matters to the business
A local attacker with an existing low-privileged account or code execution on a Linux system may be able to crash the host or potentially gain kernel-level privileges. This is most important for multi-user Linux systems, shared compute environments, container hosts, CI/CD runners, developer workstations, edge devices, and servers where untrusted users or workloads can interact with kernel device infrastructure. The vulnerability is not currently listed in CISA KEV, has very low EPSS, no known public exploit maturity in the provided data, and a flat EPSS trend, so broad internet-scale exploitation is not indicated; however, kernel privilege-escalation bugs remain high-impact when attackers already have a foothold.
How an attack unfolds
An attacker first needs local code execution or an authenticated low-privileged foothold on an affected Linux system. They then attempt to interact with platform device driver binding or override mechanisms in a way that races driver probing against updates to the driver_override field. Because the vulnerable path calls the bus match() callback without the device lock held, a carefully timed concurrent operation may cause the kernel to read a freed driver_override pointer. If the attacker can shape kernel heap contents, the stale pointer may be turned into a controlled memory access or memory-corruption primitive. A reliable exploit would likely require kernel-version-specific heap grooming and race timing; less reliable attempts may simply trigger kernel warnings, oopses, panics, or system instability. Successful exploitation could allow the attacker to execute code with kernel privileges, disable security controls, access sensitive data, or maintain persistence below normal user-space monitoring.
How to fix it
Upgrade to a Linux kernel version that includes the upstream fix using the generic driver_override infrastructure with proper internal locking. Because no exact fixed versions were provided, use the relevant distribution or vendor advisory for Red Hat, Ubuntu, Debian, SUSE, Amazon Linux, Oracle Linux, Android, embedded Linux vendors, or appliance vendors to identify the corrected kernel package for each supported release. Prioritize systems where untrusted users, containers, build jobs, or third-party workloads can execute locally. If immediate patching is not possible, reduce local attack surface by limiting shell access, restricting untrusted workload execution, applying least privilege, enforcing container isolation controls, disabling unnecessary platform device manipulation interfaces where feasible, and monitoring for kernel crashes or suspicious driver binding activity. Reboot into the patched kernel after installation; installing a kernel package alone is not sufficient if the system continues running the vulnerable kernel.
How to confirm the fix worked
Confirm remediation by verifying that systems are booted into a vendor kernel build containing the fix, not merely that an updated package is installed. Check the running kernel with uname -r and compare it against the fixed package listed in the applicable vendor advisory. For source-based or custom kernels, confirm the driver core platform code uses the generic driver_override infrastructure and associated locking rather than directly accessing the platform device driver_override field in the vulnerable path. Validate that all nodes, including standby hosts, container hosts, appliances, golden images, and autoscaling images, have been rebuilt or rebooted into the fixed kernel. Where feasible, run vendor-provided vulnerability scanners or package compliance checks and verify that no running workloads remain on superseded kernels after live-patching or staged patch deployment.
Typical attack path
- Obtain local low-privileged access to an affected Linux system.
- Identify whether the running kernel exposes platform driver binding or driver_override interfaces relevant to the vulnerable code path.
- Trigger or wait for platform driver probing through the driver core while concurrently modifying driver override state.
- Win the race so the match callback reads driver_override after it has been freed or replaced.
- Use kernel heap grooming to influence the freed memory region and convert the use-after-free into memory corruption or controlled behavior.
- Escalate privileges to root or kernel context, or cause a kernel crash if exploitation is unreliable.
- Perform post-exploitation actions such as credential theft, security control tampering, lateral movement, or persistence.
How to detect it
There are no universally reliable network indicators because exploitation requires local interaction with kernel driver infrastructure. Review host telemetry and kernel logs for signs of attempted or successful exploitation, especially on systems with local users, containers, CI jobs, or untrusted workloads. Useful sources include dmesg, journald, /var/log/kern.log, /var/log/messages, auditd, EDR process telemetry, container runtime logs, and crash dump systems such as kdump or apport. Look for kernel oopses, panics, KASAN/KFENCE use-after-free reports, slab corruption, general protection faults, or stack traces involving driver_override, platform driver matching, __driver_attach(), driver_match_device(), or platform_match(). Correlate these events with local processes that wrote to sysfs driver binding or override paths, unusual access to /sys/bus/platform/devices/*/driver_override, /sys/bus/platform/drivers/*/bind, or /sys/bus/platform/drivers/*/unbind, and sudden privilege changes or suspicious root-owned processes shortly after kernel warnings. If crash dumps are available, inspect stack traces and freed-object reports for driver_override-related memory corruption. Absence of these artifacts does not prove non-exploitation, because a reliable privilege-escalation exploit may avoid crashing the system.
- driver_override
- __driver_attach
- platform_match
- driver_match_device
- use-after-free
- KASAN: use-after-free
- KFENCE: use-after-free
- BUG: KASAN
- general protection fault
- kernel BUG
- kernel panic
- Oops:
- /sys/bus/platform/devices/
- /sys/bus/platform/drivers/
- /driver_override
- /bind
- /unbind
What your security team should do
- Inventory Linux systems and prioritize patching for multi-user servers, container hosts, CI/CD runners, virtualization hosts, developer workstations, and systems running untrusted workloads.
- Track distribution-specific advisories and deploy the first fixed kernel available for each supported platform; ensure systems are rebooted into the fixed kernel.
- Treat successful exploitation as local privilege escalation: investigate any suspicious kernel crash, oops, or unexplained root-level activity on affected systems.
- Restrict local access and untrusted workload execution on unpatched systems until remediation is complete.
- Harden container and workload isolation with seccomp, AppArmor/SELinux, user namespaces, least privilege, and removal of unnecessary device access.
- Add temporary monitoring for kernel logs referencing driver_override, __driver_attach, platform_match, use-after-free, kernel oops, BUG, or KASAN reports.
- Update base images, templates, immutable images, and disaster recovery images so newly provisioned systems do not reintroduce vulnerable kernels.
- Because KEV is false, ransomware use is not indicated, EPSS is very low, and exploit maturity is listed as none, handle through normal high-severity kernel patch cycles unless local untrusted access materially increases exposure.
The record
In the Linux kernel, the following vulnerability has been resolved: driver core: platform: use generic driver_override infrastructure When a driver is probed through __driver_attach(), the bus' match() callback is called without the device lock held, thus accessing the driver_override field without a lock, which can cause a UAF. Fix this by using the driver-core driver_override infrastructure taking care of proper locking internally. Note that calling match() from __driver_attach() without the device lock held is intentional. [1]
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-109618 PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort… CWE-416
- CVE-2026-109619 PHP has various global state that temporarily points into request memory. CWE-416
- CVE-2026-112402 Pillow is a Python imaging library. CWE-416
- CVE-2026-112396 Pillow is a Python imaging library. CWE-416
- CVE-2025-55654 A use-after-free in the gf_filter_pid_get_packet function (filter_core/filter_pid.c) of… CWE-416
- CVE-2026-17591 A flaw was found in libarchive. CWE-416
- CVE-2026-92392 During an upload, curl mishandles HTTP/2 `RST_STREAM` received from the server (with… CWE-416
- CVE-2026-109268 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a use after free… CWE-416