---
id: "CVE-2026-113780"
kind: "vulnerability"
aliases: ["CVE-2026-113780"]
title: "ESP-IDF TEE trap entry lets local app write into secure memory"
severity: "critical"
cvss: 9.3
epss: null
exploited: false
status: "open"
category: "infrastructure"
products: []
ecosystems: []
tags: ["esp-idf", "esp32-c5", "esp32-c6", "esp32-c61", "esp32-h2", "firmware", "infrastructure", "iot"]
not_affected_if: ["esp-tee-disabled", "other-chip"]
published_at: "2026-11-04T19:17:18+00:00"
first_seen_at: "2026-11-04T19:28:47+00:00"
updated_at: "2026-11-04T19:30:02+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-113780", "first_seen_at": "2026-11-04T19:28:47+00:00"}]
---

# ESP-IDF TEE trap entry lets local app write into secure memory

ESP-IDF's esp_tee trap entry saves a caller-controlled register frame through the non-secure stack pointer before validating it, on ESP32-C5, C6, C61 and H2 devices. A local unprivileged application can use this to write into TEE-exclusive memory, which can lead to code execution, denial of service or a crash.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the ESP-IDF version in the project with `idf.py --version`, and confirm whether the project uses the `esp_tee` secure world.
- Confirm the target chip is ESP32-C5, ESP32-C6, ESP32-C61 or ESP32-H2.
- Affected range: `5.5.5` up to `5.5.6`, `6.0.4`, and `6.1.1`.

## Fix

- ESP-IDF `5.5.6` (fixed in this version)
- ESP-IDF `6.0.4` and `6.1.1` are scheduled to be fixed; the sources do not confirm release status for these.

## Timeline

- 2026-11-04T19:28:47+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-113780

## Documents

- [advisory] Vendor advisory: github.com https://github.com/espressif/esp-idf/security/advisories/GHSA-49x8-xqjg-2pjg
- [fix] Patch: github.com https://github.com/espressif/esp-idf/commit/773761abb893d43d0a5b8b75ec0a1c2cf0287d53
- [fix] Patch: github.com https://github.com/espressif/esp-idf/commit/acb7d996b07293abf591b93f4aaffa04ae6732d9
- [fix] Patch: github.com https://github.com/espressif/esp-idf/commit/b85a7b0e1449ac9aec30a0c3e3b6515725556fd1
- [fix] Patch: github.com https://github.com/espressif/esp-idf/commit/dabd37fae8d2a7b1cc71f48fce824b0b9d909a07
- [fix] Release notes: github.com https://github.com/espressif/esp-idf/releases/tag/v5.5.6

## From the sources

ESF-IDF is the Espressif Internet of Things (IOT) Development Framework. From 5.5.5 until 5.5.6, 6.0.4, and 6.1.1, the esp_tee trap entry in esp_tee_vectors_plic.S and esp_tee_vectors_clic.S saves a caller-controlled register frame through the REE-supplied stack pointer before switching to the trusted TEE stack or validating the pointer. A local unprivileged REE application can direct this machine-mode write into TEE-exclusive memory on ESP32-C5, ESP32-C6, ESP32-C61, and ESP32-H2 devices, breaking the REE/TEE isolation boundary and potentially corrupting TEE control-flow data for code execution, denial of service, or system crashes. Both secure-service ecall and interrupt entry paths contain the vulnerable ordering. This issue is fixed in version 5.5.6 and is scheduled to be fixed in versions 6.0.4 and 6.1.1.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
