OP-TEE has a Use-After-Free race in FF-A shared-memory teardown
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-416 and the CVSS impact.
Summary
OP-TEE is a Trusted Execution Environment (TEE) designed as companion to a non-secure Linux kernel running on Arm; Cortex-A cores using the TrustZone technology. Starting in version 3.16.0 and prior to 4.11.0, a user-after-free (UAF) race condition exists in the shared memory teardown logic of FF-A within OP-TEE SPMC/SP flows. This only applies when OP-TEE is configured as an SPMC for S-EL0 SPs, that is, with `CFG_SECURE_PARTITION=y`. The function `sp_mem_remove()`, responsible for freeing entries in `smem->receivers` and `smem->regions`, fails to acquire the global `sp_mem_lock` before performing the `free()` operations. Concurrently, other code paths, such as `sp_mem_get_receiver()`, iterate over these same lists without holding a lock, or, like `sp_mem_is_shared()`, iterate while holding the lock but are not serialized against the unprotected `free()` in `sp_mem_remove()`. This creates a cross-thread race where a thread iterating the list can acquire a pointer to an entry (e.g., `struct sp_mem_map_region` or `struct sp_mem_receiver`), and then another thread calls `sp_mem_remove()`, freeing the object. When the first thread resumes and dereferences the pointer, it results in a Use-After-Free vulnerability. Version 4.11.0 fixes the issue.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA optee_os (OP-TEE) Fixed in 4.11.0
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-40290
References
More Op-tee vulnerabilities
- TI-2022-22796 OP-TEE Trusted OS vulnerable to Improper Validation of Array Index in the cleanup_shm_refs function CVSS 3.1HIGH 8.8
- TI-2023-21925 OP-TEE double free in shdr_verify_signature CVSS 3.1HIGH 7.4
- TI-2026-33359 OP-TEE vulnerable to ECDH private key recovery CVSS 3.1MEDIUM 4.7
- TI-2019-16063 Integer overflow in OP-TEE CVSS 3.0CRITICAL 9.8
- TI-2019-16062 Integer overflow in OP-TEE CVSS 3.0CRITICAL 9.8
- TI-2019-16061 Integer overflow in OP-TEE CVSS 3.0CRITICAL 9.8
Sources
- CVE-2026-40290 · CVE Program
- CVE-2026-40290 · NVD
- FIRST EPSS
- CVE-2026-40290 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences