Skip to main content

Linux Kernel CVE-2026-53116

| EUVDEUVD-2026-38984 HIGH
Use After Free (CWE-416)
2026-06-24 Linux GHSA-r2jg-mcxg-628g
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

Local-only s390 code path (AV:L); exploitation is a narrow race window (AC:H); requires local access to AP sysfs writes (PR:L, arguably PR:H as they are root-restricted); UAF yields full kernel C/I/A impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.3 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jul 23, 2026 - 21:41 vuln.today
CVSS changed
Jul 23, 2026 - 21:38 NVD
7.8 (HIGH)
Patch available
Jun 24, 2026 - 18:02 EUVD
CVE Published
Jun 24, 2026 - 16:30 nvd
HIGH 7.8
CVE Published
Jun 24, 2026 - 16:30 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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

s390/ap: use generic driver_override infrastructure

When the AP masks are updated via apmask_store() or aqmask_store(), ap_bus_revise_bindings() is called after ap_attr_mutex has been released.

This calls __ap_revise_reserved(), which accesses the driver_override field without holding any lock, racing against a concurrent driver_override_store() that may free the old string, resulting in a potential UAF.

Fix this by using the driver-core driver_override infrastructure, which protects all accesses with an internal spinlock.

Note that unlike most other buses, the AP bus does not check driver_override in its match() callback; the override is checked in ap_device_probe() and __ap_revise_reserved() instead.

Also note that we do not enable the driver_override feature of struct bus_type, as AP - in contrast to most other buses - passes "" to sysfs_emit() when the driver_override pointer is NULL. Thus, printing "\n" instead of "(null)\n".

Additionally, AP has a custom counter that is modified in the corresponding custom driver_override_store().

AnalysisAI

Local privilege-adjacent memory corruption in the Linux kernel's s390 Adjunct Processor (AP) crypto bus driver allows a use-after-free when AP adapter/queue masks are updated concurrently with a driver_override write. When apmask_store()/aqmask_store() trigger ap_bus_revise_bindings(), __ap_revise_reserved() reads the driver_override string without a lock, racing a concurrent driver_override_store() that can free the old string, yielding a UAF (CWE-416) with high confidentiality, integrity, and availability impact on IBM Z (s390) systems. No public exploit identified at time of analysis, and EPSS is low (0.14%, 4th percentile); the fix migrates the driver to the driver-core's internally-locked driver_override infrastructure.

Technical ContextAI

The affected component is the s390/ap (Adjunct Processor) bus, the Linux kernel subsystem that mediates access to cryptographic coprocessors/HSM adapters on IBM Z (s390x) mainframes. Administrators partition AP adapters and queues between the host and guests using bitmask sysfs attributes (apmask/aqmask), and can bind specific AP devices to drivers using the generic sysfs driver_override attribute. The root cause is CWE-416 Use-After-Free: the AP bus implemented driver_override handling with a custom store routine and a custom counter, but read the driver_override pointer in __ap_revise_reserved() (reached via ap_bus_revise_bindings() after ap_attr_mutex was released) without any lock, while a concurrent driver_override_store() could free the previous override string. Unlike most buses, AP does not consult driver_override in its match() callback - the override is instead evaluated in ap_device_probe() and __ap_revise_reserved() - and it deliberately emits an empty string rather than '(null)' when the override is unset, which is why the fix keeps a custom store while delegating pointer lifetime/locking to the driver-core's spinlock-protected driver_override infrastructure.

RemediationAI

Vendor-released patch: apply the fixed Linux kernel that includes upstream commits 8f2eca0570438b94602da1297353eb7b10dcb6cb and 81d6f7c3a70b10ff757ee8b5f8114a190871cf1e (mainline ~6.19 and corresponding stable backports). On Ubuntu, update to the fixed kernel packages per USN-8568-1 (https://ubuntu.com/security/notices/USN-8568-1) and USN-8566-1 (https://ubuntu.com/security/notices/USN-8566-1) and reboot; on other distributions install the vendor kernel that references CVE-2026-53116. If immediate patching is not possible on s390 hosts, the practical compensating control is to restrict who can write the AP sysfs attributes - avoid delegating apmask/aqmask and driver_override write access beyond trusted administrators and avoid automated or concurrent tooling that rewrites AP masks and driver_override simultaneously, which is what opens the race window; the trade-off is reduced flexibility in dynamic AP resource reassignment for guests. Non-s390 systems are not affected by this code path and need only the routine kernel update.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-53116 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy