CVE-2026-33317
Linux Debian vulnerability analysis and mitigation

Overview

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).

Technical details

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).

Impact

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).

Exploitability

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).

Exploitation steps

  1. Reconnaissance: Identify a target system running OP-TEE versions 3.13.0 through 4.10.0 with the PKCS#11 Trusted Application enabled. Confirm access to the normal-world Linux environment with at least low-privilege local credentials.
  2. Prepare malformed template: Craft a PKCS#11 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).
  3. Send request to PKCS#11 TA: Use the OP-TEE client library or a custom application (such as the public c01_poc.c) to invoke PKCS11_CMD_GET_ATTRIBUTE_VALUE with the malformed template, targeting the PKCS#11 TA via the TEE client API.
  4. Trigger OOB read (Case 1): The missing size check causes TEE_MemMove() to copy data beyond the template buffer into the output buffer, potentially leaking heap contents including cryptographic key material.
  5. Trigger OOB write (Case 2): The integer overflow in cli_head.size causes attribute value data to be written beyond the allocated temporary template buffer in the TA heap, corrupting adjacent heap memory.
  6. Achieve objective: Depending on heap layout, the attacker may read sensitive key material from the TA heap, corrupt TA state for further exploitation, or crash the PKCS#11 TA (TA panic with code 0xffff0000) (PoC Repository, GitHub Advisory).

Indicators of compromise

  • Logs: OP-TEE secure world logs showing TA panic messages with code 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.
  • Process Behavior: Unexpected crashes or restarts of the PKCS#11 Trusted Application; abnormal termination of processes using the TEE client API (e.g., tee-supplicant).
  • File System: Presence of PoC files such as c01_poc.c, build_poc.sh, or run_c01.sh on the target system, which are associated with the public exploit (PoC Repository).
  • Network: Unusual outbound connections from the device following PKCS#11 TA crashes, which may indicate post-exploitation activity if the OOB write is leveraged for further compromise.

Mitigation and workarounds

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).

Community reactions

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.

Additional resources


SourceThis report was generated using AI

Related Linux Debian vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-74733NONEN/A
  • Linux Debian logoLinux Debian
  • linux
NoYesAug 22, 2026
CVE-2026-74732NONEN/A
  • Linux Debian logoLinux Debian
  • linux
NoYesAug 22, 2026
CVE-2026-74731NONEN/A
  • Linux Debian logoLinux Debian
  • linux
NoNoAug 22, 2026
CVE-2026-74730NONEN/A
  • Linux Debian logoLinux Debian
  • linux
NoYesAug 22, 2026
CVE-2026-74729NONEN/A
  • Linux Debian logoLinux Debian
  • linux
NoYesAug 22, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management