Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Local attack vector with high privileges (signed TA loading capability required); scope changed because TA at S-EL0 corrupts the S-EL1 secure kernel across an EL boundary.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
OP-TEE OS through 4.10.0, fixed in commit 8794043, contains a use-after-free vulnerability in the Trusted Application loader that allows attackers with the ability to load a signed Trusted Application to corrupt secure-world kernel memory by setting the TA_FLAG_CONCURRENT flag in a user TA signed header. Attackers can cause two concurrent sessions to operate on the same shared context without locking, corrupting the uctx->vm_info.regions list during memref parameter mapping and unmapping to free vm_region nodes still in use, resulting in a use-after-free in S-EL1 secure-world kernel memory.
AnalysisAI
Use-after-free in the OP-TEE OS Trusted Application loader (all versions through 4.10.0) allows an attacker who controls a signed Trusted Application to corrupt S-EL1 secure-world kernel memory. By setting TA_FLAG_CONCURRENT in the TA's signed header - a flag reserved exclusively for pseudo-TAs - an adversary can force two concurrent sessions to share a context without locking, triggering a race on uctx->vm_info.regions that frees vm_region nodes still referenced by live mappings. No public exploit has been identified at time of analysis, and the flaw is not listed in CISA KEV, but the high CVSS 4.0 score of 8.4 and confirmed patch availability underscore its seriousness in TEE-dependent deployments.
Technical ContextAI
OP-TEE OS (cpe:2.3:a:op-tee:optee_os) is the open-source reference implementation of ARM TrustZone's Trusted Execution Environment (TEE), running at S-EL1 (secure kernel) with Trusted Applications executing at S-EL0. The loader path in core/kernel/ldelf_loader.c and ldelf/ta_elf.c processes TA headers before mapping memory regions via the vm_info.regions linked list. CWE-416 (Use After Free) arises because TA_FLAG_CONCURRENT, when present in a regular (non-pseudo) TA header, bypasses mutual exclusion during concurrent session creation: both sessions share the same user context (uctx) and race to map/unmap memref parameters, causing vm_region nodes to be freed while still referenced by the other session's active mapping. The fix (commit 8794043) adds early rejection of any TA header carrying TA_FLAG_CONCURRENT at both the kernel loader layer (ldelf_loader.c) and the ELF loader layer (ldelf/ta_elf.c), returning TEE_ERROR_BAD_FORMAT before any memory mapping occurs.
RemediationAI
Apply the upstream fix by updating to a build of OP-TEE OS that incorporates commit 8794043c4065c26a2b8b1313794ba5ba5f06d296 (https://github.com/OP-TEE/optee_os/commit/8794043c4065c26a2b8b1313794ba5ba5f06d296). The patch adds a TEE_ERROR_BAD_FORMAT rejection for any TA header with TA_FLAG_CONCURRENT set, preventing the vulnerable code path from being reached. Because OP-TEE OS is typically integrated into firmware images by SoC vendors or OEMs, a firmware update - not an OS-level package upgrade - is likely required; coordinate with your platform vendor. As a compensating control where a firmware update cannot be deployed immediately, restrict which Trusted Applications can be loaded by enforcing strict allowlisting of TA UUIDs at the Normal World secure service dispatcher; this limits exposure to signed TAs under your control. Note that this workaround does not eliminate the vulnerability - it reduces the attacker surface to TAs you already trust. The VulnCheck advisory is available at https://www.vulncheck.com/advisories/op-tee-os-use-after-free-via-trusted-application-loader-ta-flag-concurrent and the upstream PR at https://github.com/OP-TEE/optee_os/pull/7900.
Out-of-bounds read and write in OP-TEE OS PKCS#11 Trusted Application (versions 3.13.0-4.10.0) allows authenticated loca
Secure-world heap corruption in OP-TEE OS through 4.10.0 allows a malicious Trusted Application to write attacker-contro
Use-after-free race condition in OP-TEE OS versions 3.16.0 through 4.10.x enables local low-privileged attackers to corr
Integer overflow in OP-TEE OS RSA signature encoding crashes the Trusted Execution Environment on platforms with RSA har
Null pointer dereference in OP-TEE OS through version 4.10.0 allows a low-privileged Normal World process to crash the e
Subkey rollback protection in OP-TEE OS versions 3.20.0 through 4.10.x is completely non-functional due to a missing fie
Heap overflow in OP-TEE's ARM Crypto Extensions SHA-3 implementation corrupts TEE kernel memory across all platforms bui
Type confusion in OP-TEE OS versions 4.3.0 through 4.10.x allows a highly privileged local attacker operating in the nor
Private ECDH key recovery in OP-TEE prior to version 4.11.0 is achievable by a local attacker who can invoke TEE_DeriveK
Integer overflow in OP-TEE OS's AES-GCM implementation silently corrupts authentication tag computation when a single op
Heap exhaustion in OP-TEE OS (versions 3.3.0 through 4.10.x) allows a low-privileged normal-world local caller to progre
Stack exhaustion via unbounded recursion in the OP-TEE PKCS#11 Trusted Application allows a local low-privileged user to
Same weakness CWE-416 – Use After Free
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55697
GHSA-p84g-83m7-53p6