Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Local vector (AV:L) and low privileges (PR:L) confirmed by TEE client invocation requirement; AC:H due to ~1,000-2,000 adaptive queries needed; C:L as only target RSA-OAEP plaintext is recoverable, no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
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.9.0 and prior to version 4.11.0, the RSA-OAEP decryption implementation in the NXP CAAM crypto driver uses non-constant-time memcmp() for label hash verification and has multiple distinguishable error paths. This creates a Manger-style padding oracle that allows an attacker to recover RSA-OAEP plaintext with approximately 1000-2000 adaptive chosen ciphertext queries. Version 4.11.0 contains a patch. As a workaround, disable the NXP CAAM RSA driver with CFG_CRYPTO_DRV_RSA=n.
AnalysisAI
RSA-OAEP decryption in OP-TEE OS versions 3.9.0 through 4.10.x exposes a Manger-style padding oracle via the NXP CAAM hardware crypto driver, enabling local low-privileged attackers to recover RSA-OAEP plaintext through approximately 1,000-2,000 adaptive chosen-ciphertext queries. The flaw arises from non-constant-time memcmp() usage during label hash verification combined with multiple distinguishable error paths that leak oracle-exploitable timing and response information. No public exploit code or CISA KEV listing has been identified at time of analysis, and exploitation is constrained to NXP CAAM-equipped platforms with the RSA driver enabled.
Technical ContextAI
OP-TEE (optee_os) is an open-source Trusted Execution Environment running in the ARM TrustZone secure world alongside a non-secure Linux kernel, targeting Cortex-A platforms. The vulnerable component is the NXP CAAM (Cryptographic Acceleration and Assurance Module) hardware accelerator driver, specifically its RSA-OAEP decryption routine. CWE-208 (Observable Timing Discrepancy) captures the root cause: the implementation calls a non-constant-time memcmp() to compare OAEP label hashes, meaning execution time varies depending on where the first byte mismatch occurs. This is compounded by multiple distinguishable error return paths, collectively creating the observable oracle signal required for a Manger attack. A Manger-style chosen-ciphertext attack on RSA-OAEP iteratively submits crafted ciphertexts and uses oracle responses to statistically narrow the plaintext space - recovering it without the private key. The CPE cpe:2.3:a:op-tee:optee_os:*:*:*:*:*:*:*:* covers all optee_os versions; the vulnerable window is 3.9.0 to just before 4.11.0, introduced when the CAAM RSA driver gained this code path.
RemediationAI
Upgrade to OP-TEE OS version 4.11.0, which contains the vendor-confirmed fix for this padding oracle, as documented in the GitHub security advisory at https://github.com/OP-TEE/optee_os/security/advisories/GHSA-5q45-58r5-cq4g. For deployments that cannot immediately upgrade, the vendor-provided workaround is to rebuild OP-TEE with the configuration flag CFG_CRYPTO_DRV_RSA=n, which disables the NXP CAAM RSA driver entirely. The trade-off of this workaround is that RSA operations will fall back to the software implementation or become unavailable depending on the platform configuration, which may reduce cryptographic throughput on NXP SoC platforms that rely on CAAM hardware acceleration. Organizations should assess whether RSA-OAEP decryption is actively exercised in their TEE workloads to gauge urgency; if CAAM RSA is not in use, the exposure may already be inactive.
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 in the OP-TEE OS Trusted Application loader (all versions through 4.10.0) allows an attacker who controls
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
Same weakness CWE-208 – Observable Timing Discrepancy
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41906