Cloudanix VulnDB

CVE-2026-98775

None

CVSS

—

EPSS

0.2%

Published

Oct 18, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the code that manages secure enclaves on Linux could let a local user crash the whole system or potentially run code they should not be allowed to run.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Use After Free
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in nitro_enclaves when ne_create_vm_ioctl fails after anon_inode_getfile succeeds; fput defers release via task_work so ne_enclave_release dereferences the already-freed ne_enclave->slot_uid (or private_data) before the error path can clean up.

Why it matters to the business

Local kernel memory corruption or crash on systems that create Nitro enclaves; can cause denial of service and, in theory, local privilege escalation on unpatched kernels.

How an attack unfolds

An attacker with the ability to invoke ne_create_vm_ioctl repeatedly forces a SLOT_ALLOC failure after the anonymous inode file has been allocated; the buggy error path performs fput then frees the enclave object while task_work still holds a reference, triggering the use-after-free on release.

How to fix it

Update to a Linux kernel containing the fix that clears enclave_file->private_data before fput on the error path; rebuild and reboot with the corrected kernel. No downstream package versions are listed.

How to confirm the fix worked

Confirm the patch is present by inspecting the ne_create_vm_ioctl error path for the private_data = NULL assignment; re-run the provided KASAN reproducer and verify absence of slab-use-after-free reports.

Typical attack path

  1. Obtain local access on a system with nitro_enclaves enabled
  2. Invoke ne_create_vm_ioctl in a loop to trigger SLOT_ALLOC failures after anon_inode_getfile
  3. Trigger the error path that calls fput then kfree on ne_enclave
  4. Cause ne_enclave_release to run via task_work and dereference the freed object

How to detect it

Search kernel logs and KASAN reports for "slab-use-after-free" together with "ne_enclave_release"; monitor for repeated ne_create_vm_ioctl failures followed by crashes in the enclave teardown path.

  • KASAN: slab-use-after-free in ne_enclave_release
  • ne_enclave->slot_uid
  • ne_create_vm_ioctl.*SLOT_ALLOC

What your security team should do

  • Apply the upstream kernel fix as soon as a distribution package is available
  • Restrict untrusted local users from loading or exercising the nitro_enclaves driver until patched
  • Enable KASAN or similar debug kernels on test systems that exercise enclave creation

The record

In the Linux kernel, the following vulnerability has been resolved: nitro_enclaves: fix use-after-free on SLOT_ALLOC failure When ne_create_vm_ioctl() fails the SLOT_ALLOC request after anon_inode_getfile() has succeeded, the error path calls fput(enclave_file) and then frees ne_enclave. In normal userspace context, fput() defers the final __fput() via task_work. ne_enclave_release() therefore runs after ne_enclave has already been freed and dereferences ne_enclave->slot_uid, causing a use-after-free: KASAN: slab-use-after-free in ne_enclave_release. The enclave has no slot allocated and is not yet linked into the enclaves list on this error path, so ne_enclave_release() is expected to return early when slot_uid is zero. However, reading slot_uid already accesses the freed object. Clear enclave_file->private_data before fput() on the error path. ne_enclave_release() then returns immediately when private_data is NULL, leaving the ioctl error path as the sole owner of ne_enclave. This is safe because the file has not been fd_install()'d yet. Tested on an AWS EC2 m5.2xlarge with CONFIG_KASAN=y. Without the patch, the reproducer triggers a KASAN slab-use-after-free on every SLOT_ALLOC failure. With the patch, no KASAN report is produced and the SLOT_ALLOC error is still returned. Normal enclave creation and teardown are unaffected.

Affected packages

Ecosystem Package Introduced Fixed