
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-33317 is an out-of-bounds read and write vulnerability in the PKCS#11 Trusted Application (TA) of OP-TEE, a Trusted Execution Environment for Arm Cortex-A cores using TrustZone technology. Missing input validation in entry_get_attribute_value() within ta/pkcs11/src/object.c allows a local low-privileged attacker to read up to 7 bytes beyond the end of a template buffer and write heap data beyond the buffer boundary. Affected versions span OP-TEE 3.13.0 through 4.10.0 (both trustedfirmware and linaro distributions). The vulnerability was reported on 2025-12-23, confirmed on 2026-01-08, and publicly disclosed with patches on 2026-04-23. It carries a CVSS v3.1 base score of 8.7 (High) (GitHub Advisory).
The vulnerability has two related cases, both classified as CWE-125 (Out-of-bounds Read) and CWE-787 (Out-of-bounds Write). In Case 1, entry_get_attribute_value() copies the updated template to the output buffer using TEE_MemMove() without first verifying that out->memref.size does not exceed the actual template buffer size, enabling an OOB read. In Case 2, the for-loop iterating over attribute headers (cli_head) fails to verify that each attribute header is fully within the template buffer before copying it, and does not check the cli_head.size field for integer overflow — allowing a crafted size value to cause a write of attribute content into the TA heap beyond the allocated temporary template buffer. The vulnerability is reachable via the PKCS11_CMD_GET_ATTRIBUTE_VALUE TA command with a malformed template parameter, requiring only local low-privilege access (GitHub Advisory, Patch Commit e031c4e).
Successful exploitation can lead to leakage of sensitive cryptographic material (e.g., secret keys not yet cleared from the TA heap) stored within the Trusted Execution Environment, compromising confidentiality. The OOB write can corrupt the TA heap, undermining the integrity of the TEE and potentially enabling further exploitation within the secure world. Additionally, reading or writing beyond mapped memory can crash the PKCS#11 TA, causing a denial of service. Because the TEE is designed as a security boundary isolating sensitive operations from the normal world, compromise of the PKCS#11 TA has a changed scope impact, potentially affecting resources beyond the vulnerable component (GitHub Advisory).
A public proof-of-concept (PoC) exploit written in C (c01_poc.c) is available on GitHub, which sends a malformed C_GetAttributeValue request to trigger the heap corruption, resulting in a TA panic (0xffff0000) rather than full system compromise (PoC Repository). The exploit has also been indexed by Sploitus and referenced by exploit-intel.com. The EPSS score is approximately 0.013% (very low probability of widespread exploitation in the near term). There is no evidence of in-the-wild exploitation or CISA KEV catalog listing as of the time of this report. Exploitation requires local access with low privileges, limiting the attack surface to authenticated users or processes on the affected device (GitHub Advisory).
C_GetAttributeValue request with a malformed template parameter — either with an oversized out->memref.size (Case 1) or with an attribute header (cli_head) whose size field is crafted to overflow when added to the header size (Case 2).c01_poc.c) to invoke PKCS11_CMD_GET_ATTRIBUTE_VALUE with the malformed template, targeting the PKCS#11 TA via the TEE client API.TEE_MemMove() to copy data beyond the template buffer into the output buffer, potentially leaking heap contents including cryptographic key material.cli_head.size causes attribute value data to be written beyond the allocated temporary template buffer in the TA heap, corrupting adjacent heap memory.0xffff0000) (PoC Repository, GitHub Advisory).0xffff0000 from the PKCS#11 TA; repeated PKCS11_CKR_ARGUMENTS_BAD or PKCS11_CKR_GENERAL_ERROR return codes from PKCS11_CMD_GET_ATTRIBUTE_VALUE calls.tee-supplicant).c01_poc.c, build_poc.sh, or run_c01.sh on the target system, which are associated with the public exploit (PoC Repository).Upgrade OP-TEE to version 4.11.0 or later, which incorporates all three patches addressing this vulnerability. For systems that cannot immediately upgrade, apply the individual patch commits: e031c4e562023fd9f199e39fd2e85797e4cbdca9 (output buffer size check), 16926d5a46934c46e6656246b4fc18385a246900 (template consistency check with overflow protection), and 149e8d7ecc4ef8bb00ab4a37fd2ccede6d79e1ca (attribute output size correction). No configuration-based workaround is available. As an additional defense-in-depth measure, restrict local access privileges to limit which processes can interact with the PKCS#11 TA, and monitor for unusual TA crashes (GitHub Advisory).
The vulnerability was reported by the Integrity team at Arm/Trusted Firmware and disclosed by the OP-TEE project maintainer Jens Wiklander via a GitHub Security Advisory on April 23, 2026 (GitHub Advisory). The Hacker Wire published a technical write-up shortly after disclosure. A Bluesky post from cyberhub.blog also highlighted the vulnerability. Tenable added detection via Nessus plugin 310393, and the PoC was indexed by Sploitus, indicating moderate community attention given the TEE security context.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."