CVE-2026-53273: Linux Kernel TEE OptEE Use-After-Free Local Privilege Escalation
A use-after-free vulnerability exists in the Linux kernel's TEE (Trusted Execution Environment) OptEE subsystem. When a client process terminates before the supplicant (a background service that handles TEE requests) finishes processing, the client may free request data while the supplicant still holds a reference to it. This creates a race condition where the supplicant attempts to access memory that has already been deallocated, potentially allowing privilege escalation or system compromise. The vulnerability stems from a prior fix that made client waits killable during shutdown, inadvertently changing the expected lifetime of request objects.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-416
- Affected products
- 12 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-08
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: tee: optee: prevent use-after-free when the client exits before the supplicant Commit 70b0d6b0a199 ("tee: optee: Fix supplicant wait loop") made the client wait as killable so it can be interrupted during shutdown or after a supplicant crash. This changes the original lifetime expectations: the client task can now terminate while the supplicant is still processing its request. If the client exits first it removes the request from its queue and kfree()s it, while the request ID remains in supp->idr. A subsequent lookup on the supplicant path then dereferences freed memory, leading to a use-after-free. Serialise access to the request with supp->mutex: * Hold supp->mutex in optee_supp_recv() and optee_supp_send() while looking up and touching the request. * Let optee_supp_thrd_req() notice that the client has terminated and signal optee_supp_send() accordingly. With these changes the request cannot be freed while the supplicant still has a reference, eliminating the race.
8 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53273 is a use-after-free (CWE-416) in the Linux kernel's TEE OptEE driver. The root cause is a synchronization gap between client and supplicant processes introduced by commit 70b0d6b0a199. When a client task terminates while the supplicant is still processing a request, the client removes the request from its queue and deallocates it via kfree(). However, the request ID remains indexed in supp->idr. A subsequent supplicant lookup dereferences the freed memory. The fix involves serializing access via supp->mutex in optee_supp_recv() and optee_supp_send() to ensure the request cannot be freed while the supplicant holds a reference, and allowing optee_supp_thrd_req() to detect client termination and signal appropriately.
Business impact
This vulnerability enables local privilege escalation on affected Linux systems. An unprivileged user can trigger the race condition by crafting a TEE client that exits prematurely during a supplicant request, potentially leading to arbitrary kernel code execution. Systems relying on TEE for security-critical operations—such as DRM, secure boot verification, or trusted key storage—face elevated risk. The impact is contained to local attack scenarios and requires user-level access, but successful exploitation grants full kernel-level privileges.
Affected systems
The Linux kernel is affected across multiple versions. The vulnerability impacts any kernel build that includes the TEE OptEE subsystem with commit 70b0d6b0a199 applied. Systems using ARM TrustZone, mobile platforms (Android, Linux phones), embedded devices, and servers leveraging TEE for cryptographic or DRM operations are at risk. Desktop and server distributions that enable TEE support in their kernel configurations are potentially exposed. Verify your kernel version and TEE module status against vendor advisories to confirm exposure.
Exploitability
The vulnerability requires local access and is not currently known to be actively exploited in the wild (KEV status is not designated). Exploitation is moderately complex: an attacker must write a TEE client that reliably triggers the race condition between client exit and supplicant processing. Once triggered, the use-after-free may lead to kernel memory corruption, information disclosure, or code execution. The CVSS 3.1 score of 7.8 (HIGH) reflects local attack vector, low complexity, and high impact across confidentiality, integrity, and availability.
Remediation
Apply a Linux kernel patch that implements mutex-based serialization in the TEE OptEE driver. The fix ensures that request objects remain valid for the supplicant's entire lifecycle. Verify the patch version from your Linux distributor or kernel.org. Most major distributions (Red Hat, Ubuntu, Debian, etc.) will backport the fix to their supported kernel branches. Update to a patched kernel version and reboot. If immediate patching is not feasible, disable TEE OptEE support in your kernel configuration if it is not essential to your operations.
Patch guidance
Consult your Linux distribution's security advisory and kernel update channels. Vendors like Red Hat, Canonical (Ubuntu), and Debian publish patches tied to CVE-2026-53273 with specific kernel versions. Apply the latest kernel update from your distribution. For rolling distributions, ensure your kernel is fully up to date. For long-term support kernels, verify that your LTS branch includes the fix. Test the patched kernel in a non-production environment before deployment. Rebooting into the patched kernel is required for the fix to take effect.
Detection guidance
Monitor kernel logs and crash reports for use-after-free warnings in the TEE OptEE subsystem, typically logged as BUG or KASAN (Kernel Address Sanitizer) errors if KASAN is enabled. Check for unexpected kernel panics or oopses referencing optee_supp_recv(), optee_supp_send(), or optee_supp_thrd_req(). On systems with KASAN or CONFIG_DEBUG_OBJECTS enabled, detection is more straightforward. Endpoint detection and response (EDR) solutions can monitor for abnormal TEE client behavior or rapid process termination patterns. Kernel auditing (auditd) can track TEE subsystem access, though not the race condition itself.
Why prioritize this
This vulnerability merits high priority due to its HIGH CVSS score (7.8), the potential for local privilege escalation, and widespread kernel distribution. Although not yet exploited in the wild, the race condition is deterministic and can be reliably triggered by a local attacker. Systems in multi-tenant environments, shared hosting, or with untrusted local users present elevated risk. Organizations deploying TEE for sensitive operations should prioritize patching. The local-only attack vector reduces urgency slightly compared to remote RCE vulnerabilities, but the high impact justifies expedited remediation.
Risk score, explained
The CVSS 3.1 score of 7.8 (HIGH) reflects: Attack Vector (Local) – requires direct system access; Attack Complexity (Low) – race condition is reproducible without specialized tooling; Privileges Required (Low) – unprivileged user can trigger; User Interaction (None) – automatic upon client termination; Scope (Unchanged) – impact limited to the affected system; Confidentiality (High) – kernel memory can be read; Integrity (High) – kernel state can be modified; Availability (High) – kernel crash or DoS possible. The score appropriately captures local privilege escalation severity.
Frequently asked questions
Does this vulnerability affect non-TEE systems?
No. Systems without TEE support or those that do not load the optee_supp kernel module are unaffected. Check your kernel configuration (grep TEE /boot/config-$(uname -r)) to confirm TEE is enabled. Desktop systems without ARM TrustZone or explicit TEE support are typically not at risk, though some server and embedded platforms enable it by default.
Can this vulnerability be exploited remotely?
No. The vulnerability requires local system access (CVSS Attack Vector: Local). It cannot be exploited over the network. Only local users or processes running on the affected system can trigger the race condition.
What is the difference between a TEE client and supplicant?
A TEE client is a user-space application (or kernel component) that requests operations from the Trusted Execution Environment. The supplicant is a background daemon that processes those requests on behalf of the TEE. The vulnerability occurs when the client terminates before the supplicant finishes handling the request, causing memory to be freed prematurely.
How long has this vulnerability been present?
The vulnerability was introduced by commit 70b0d6b0a199, which fixed an earlier supplicant wait-loop issue. The exact date of introduction depends on your kernel version; consult your vendor's advisory. It affects kernels that include that commit and have not yet been patched with the fix serializing access via supp->mutex.
This analysis is provided for informational purposes and reflects the state of information as of the publication date. CVSS scores, vulnerability details, and patch availability are subject to change. Organizations should verify all technical details, patch versions, and applicability against official vendor advisories from kernel.org and their Linux distribution maintainer. This document does not constitute legal or compliance advice. Always test patches in non-production environments before deployment. SEC.co makes no warranties regarding the completeness, accuracy, or timeliness of this information. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-10001HIGHChrome Sandbox Escape via PerformanceManager Use-After-Free
- CVE-2026-10002HIGHGoogle Chrome PDFium Use-After-Free Vulnerability (CVSS 8.8)
- CVE-2026-10003HIGHChrome Use-After-Free Code Execution Vulnerability Analysis
- CVE-2026-10007HIGHChrome Use-After-Free in SVG Arbitrary Code Execution (CVSS 8.8)
- CVE-2026-10012HIGHChrome Skia Use-After-Free Sandbox Escape (v148.0.7778.216)
- CVE-2026-10013HIGHUse-After-Free in Chrome WebCodecs – Patch Guide & Risk Assessment
- CVE-2026-10016HIGHUse-After-Free in Chrome DOM – Sandbox Code Execution Vulnerability
- CVE-2026-10882HIGHCritical Chrome Use-After-Free RCE Vulnerability – Exploit Details & Patch Guidance