CVE-2026-41515 Overview
CVE-2026-41515 affects OP-TEE, a Trusted Execution Environment (TEE) that runs alongside a non-secure Linux kernel on Arm Cortex-A cores using TrustZone. The RSA-OAEP decryption routine in the NXP CAAM crypto driver uses non-constant-time memcmp() for label hash verification and exposes multiple distinguishable error paths. This behavior creates a Manger-style padding oracle. An attacker with local access can recover RSA-OAEP plaintext using roughly 1000–2000 adaptive chosen ciphertext queries. Versions from 3.9.0 up to but not including 4.11.0 are affected. The issue is tracked under [CWE-208] (Observable Timing Discrepancy).
Critical Impact
A local attacker can recover RSA-OAEP plaintext protected by the TEE through adaptive chosen ciphertext queries against the NXP CAAM driver.
Affected Products
- OP-TEE optee_os versions 3.9.0 through 4.10.x
- NXP CAAM crypto driver builds with CFG_CRYPTO_DRV_RSA=y
- Arm Cortex-A platforms using OP-TEE with NXP CAAM hardware acceleration
Discovery Timeline
- 2026-07-06 - CVE-2026-41515 published to NVD
- 2026-07-07 - Last updated in NVD database
Technical Details for CVE-2026-41515
Vulnerability Analysis
The vulnerability is a padding oracle side channel in the RSA-OAEP (Optimal Asymmetric Encryption Padding) decryption path of the NXP CAAM crypto driver within OP-TEE. During OAEP unpadding, the driver compares the decoded label hash against the expected hash using memcmp(), which returns as soon as the first differing byte is found. Distinct error branches also return different status codes depending on which unpadding check fails. Together, these behaviors let an attacker distinguish valid from invalid OAEP structures based on timing and error responses.
This oracle enables a Manger-style attack against RSA-OAEP. By adaptively submitting crafted ciphertexts and observing which are treated as "almost valid," an attacker narrows the plaintext range with each query. Recovery of a full plaintext block converges in approximately 1000–2000 queries, well within reach when the caller has local invocation access to the TEE.
Root Cause
The root cause is the combination of non-constant-time comparison and non-uniform error handling in the OAEP decoding logic. Cryptographic unpadding routines must run in time independent of secret data and must return a single indistinguishable failure status. The CAAM driver violates both invariants, exposing intermediate decoding state to the untrusted caller.
Attack Vector
Exploitation requires local access with the ability to invoke RSA-OAEP decryption operations against a target key inside the TEE. The attacker submits chosen ciphertexts through the normal client API, measures the response latency, and observes which of the distinguishable error paths is returned. No privileged access to secure world memory is needed. See the OP-TEE GitHub Security Advisory GHSA-5q45-58r5-cq4g for the full technical write-up.
Detection Methods for CVE-2026-41515
Indicators of Compromise
- High-volume RSA-OAEP decryption requests directed at a single key handle from a non-privileged client application
- Repeated invocations of the CAAM RSA decryption service returning padding or decoding error status codes
- Long-running processes issuing tightly timed sequences of TEE client API calls (TEEC_InvokeCommand) to a cryptographic Trusted Application
Detection Strategies
- Inventory OP-TEE builds and identify devices running optee_os between 3.9.0 and 4.10.x with CFG_CRYPTO_DRV_RSA enabled
- Instrument the Trusted Application layer to log the rate and outcome distribution of RSA-OAEP decryption calls per caller
- Alert on statistical anomalies where a single client generates thousands of RSA-OAEP failures against the same key within a short window
Monitoring Recommendations
- Capture normal-world audit logs of TEE client sessions and correlate with process identity and command frequency
- Monitor CAAM driver error counters exposed through the kernel and flag sustained increases in OAEP decode failures
- Track firmware and OP-TEE version telemetry across the fleet to confirm patched builds are deployed
How to Mitigate CVE-2026-41515
Immediate Actions Required
- Upgrade OP-TEE optee_os to version 4.11.0 or later on all affected devices
- If patching is not immediately feasible, rebuild OP-TEE with CFG_CRYPTO_DRV_RSA=n to disable the NXP CAAM RSA driver and fall back to the software RSA implementation
- Restrict which client applications and users can invoke RSA-OAEP decryption Trusted Applications
Patch Information
OP-TEE version 4.11.0 contains the fix. The patch replaces the vulnerable comparison with a constant-time equivalent and unifies the OAEP error paths so that all unpadding failures return an identical status. Details are published in the OP-TEE GitHub Security Advisory GHSA-5q45-58r5-cq4g.
Workarounds
- Set CFG_CRYPTO_DRV_RSA=n in the OP-TEE build configuration to disable the vulnerable CAAM RSA driver
- Rate-limit or gate RSA-OAEP decryption calls at the Trusted Application layer to make oracle exploitation impractical
- Rotate any long-lived RSA keys that were previously used with the vulnerable driver once patching is complete
# Configuration example: disable the NXP CAAM RSA driver in the OP-TEE build
make CFG_CRYPTO_DRV_RSA=n
# Verify the resulting build no longer registers the CAAM RSA driver
grep -R "CFG_CRYPTO_DRV_RSA" out/
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

