CVE-2026-93152
NoneCVSS
—
EPSS
0.2%
Published
Sep 17, 2026
CISA due date
—
Cloudanix analysis
A timing flaw in the storage driver on certain Apple computers could let one part of the system see storage queues before they are fully ready, potentially causing crashes or corrupted data transfers.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Other
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
The nvme-apple driver performed a plain WRITE_ONCE for the queue enabled flag followed only by a wmb(), allowing the flag to become visible to other CPUs before the preceding queue initialization writes were published; concurrent interrupt and request paths performing plain reads could therefore observe an enabled queue whose state was still uninitialized.
Why it matters to the business
On Apple NVMe hardware, concurrent I/O or shutdown paths may access partially-initialized queue structures, producing kernel crashes, I/O errors, or silent data corruption that can interrupt storage operations and require reboots or data recovery.
How an attack unfolds
An attacker with local code execution on an affected Apple system triggers rapid queue creation and concurrent interrupt or request activity; the missing release/acquire ordering lets one path read the enabled flag before the queue metadata is fully visible, resulting in use of uninitialized state that can be steered toward a crash or memory corruption primitive.
How to fix it
Update to a kernel containing the referenced commit that replaces the wmb() and plain accesses with smp_store_release when enabling the queue and smp_load_acquire when testing it; apply the same helpers on the shutdown path for consistency.
How to confirm the fix worked
Confirm the presence of smp_store_release / smp_load_acquire calls around the enabled flag in apple_nvme_init_queue and related paths; exercise queue creation under interrupt load and verify absence of prior symptoms such as unexpected NVMe queue faults.
Typical attack path
- Obtain local execution on Apple hardware running the vulnerable kernel
- Create or reset an NVMe queue while simultaneously generating interrupts or I/O requests
- Exploit the window where the enabled flag is visible without prior initialization writes being ordered
- Cause the interrupt or request handler to dereference uninitialized queue fields
- Escalate to denial of service or attempt to leverage resulting memory corruption
How to detect it
Search kernel logs for NVMe queue-related oops, warnings about uninitialized state, or repeated apple_nvme interrupt faults around queue initialization; correlate with processes that rapidly open or reset NVMe devices.
What your security team should do
- Prioritize patching Apple systems that use the nvme-apple driver
- Monitor vendor kernel updates for the memory-ordering fix and schedule rapid deployment
- Add regression tests that stress queue enable/disable under concurrent I/O
The record
In the Linux kernel, the following vulnerability has been resolved: nvme-apple: Use acquire/release for queue enabled state apple_nvme_init_queue() initializes queue state and then marks the queue enabled. The interrupt and request paths check enabled before using that queue state. The old wmb() after WRITE_ONCE(enabled, true) does not publish the earlier initialization before enabled becomes visible. Use a release store when enabling the queue and acquire loads when testing it. Although the shutdown-side enabled accesses are not used for publishing queue initialization, use helpers for them as well for consistency.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|