Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain unprivileged task execution on device
-
DeliveryIdentify MPU-enabled port with queue sets active
-
ExploitCall xQueueAddToSet() with incompatible handle type
-
ExecutionKernel skips type validation, misinterprets memory
-
PersistRead privileged kernel memory across MPU boundary
-
ImpactExtract sensitive runtime data
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two specific compile-time configuration conditions must both be present: (1) the target must use an MPU-enabled FreeRTOS port (i.e., the port variant that activates Memory Protection Unit enforcement, segregating unprivileged tasks from kernel memory), and (2) the kernel must be compiled with configUSE_QUEUE_SETS=1 in FreeRTOSConfig.h, enabling the queue set API including xQueueAddToSet(). Devices built without MPU support or with configUSE_QUEUE_SETS=0 (the typical default) are completely unaffected. Exploitation is further limited to local task execution: the attacker must have the ability to run code as an unprivileged FreeRTOS task on the target device, ruling out purely network-based exploitation. The CVSS vector confirms PR:L (low-privilege task) and AV:L (local), meaning an attacker with no existing code execution on the device cannot trigger this vulnerability remotely. |
| Impact | The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N, score 8.2) indicates local exploitation by a low-privileged task with no user interaction, yielding high confidentiality impact on both the vulnerable system and a subsequent (privileged) system context - here, the kernel memory space. However, the vendor-supplied AT:N rating warrants scrutiny: exploitation demonstrably requires two non-default preconditions (MPU-enabled port AND configUSE_QUEUE_SETS=1), suggesting AT:P (attack requirements present) may be more accurate, which would reduce real-world exploitability. No CISA KEV listing and no public POC exist, so exploitation remains theoretical. The information-disclosure-only impact (VI:N/VA:N) limits blast radius - this is a read primitive, not arbitrary code execution - though privileged kernel memory leakage could expose cryptographic keys, task credentials, or sensitive runtime state that enables follow-on attacks. The risk is real but scoped: devices not using MPU or queue sets are entirely unaffected, and FreeRTOS is predominantly deployed in resource-constrained embedded contexts where network-reachable threat actors first require physical or firmware-level access. |
| Exploit ScenarioDerived | A firmware image running on an STM32 or similar Cortex-M device with the MPU enabled and configUSE_QUEUE_SETS=1 hosts both a privileged driver task and an unprivileged application task. The unprivileged task calls xQueueAddToSet() passing a handle to an incompatible object type; because the kernel performs no type check, it processes the object as a valid queue-set member and subsequently dereferences or exposes a pointer into privileged memory. The unprivileged task reads kernel-managed data - potentially including cryptographic material or configuration secrets - without triggering an MPU fault. No public exploit or proof-of-concept code is known at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 21, 2026
Unprivileged task memory disclosure in FreeRTOS-Kernel before 11.3.1 enables a low-privileged task to read privileged kernel memory by exploiting missing type validation in the xQueueAddToSet() function (CWE-843). Exploitation is constrained to deployments using MPU-enabled ports with the queue sets feature active, but on affected configurations the CVSS 4.0 score of 8.2 reflects high confidentiality impact across both the vulnerable system and subsequent (privileged) system contexts. No public exploit code or CISA KEV listing exists; Amazon (AWS), who reported the issue, has released a fix in version 11.3.1.
RemediationAI
Upgrade to FreeRTOS-Kernel version 11.3.1 or later, which introduces the missing type validation in xQueueAddToSet(). The patched source is available at https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/11.3.1 and the Amazon security bulletin at https://aws.amazon.com/security/security-bulletins/2026-086-aws/ provides full remediation guidance. For projects where an immediate kernel upgrade is not feasible, the primary compensating control is to set configUSE_QUEUE_SETS to 0 in FreeRTOSConfig.h, which disables the queue sets feature entirely and eliminates the vulnerable code path; the trade-off is that any application logic relying on queue sets must be refactored to use alternative synchronization primitives. A secondary mitigation is to ensure the MPU is disabled on the target port if privilege separation is not architecturally required, though this weakens the broader security posture of the system and should be considered a last resort. Neither workaround substitutes for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FreeRTOS-Kernel is the task-scheduling core of the FreeRTOS real-time operating system, widely embedded in microcontroller and IoT firmware. The affected component, xQueueAddToSet(), aggregates multiple queues or semaphores into a queue set - a feature gated by the compile-time macro configUSE_QUEUE_SETS=1. CWE-843 (Type Confusion) describes the root cause: the function accepts an incompatible handle type without validating that the object being added is a permissible queue-set member. On ports that have the Memory Protection Unit (MPU) enabled, FreeRTOS enforces a hardware-backed privilege boundary between unprivileged tasks and kernel/privileged-task memory. By passing a malformed or incompatible queue handle, an unprivileged task can cause the kernel to misinterpret memory layout or pointer arithmetic, crossing the MPU boundary and reading privileged memory regions. The CPE cpe:2.3:a:freertos:freertos-kernel:*:*:*:*:*:*:*:* covers all versions of the kernel library prior to the fix.
Know when Freertos gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
AC:H reflects the dual non-default prerequisite (MPU-enabled port AND configUSE_QUEUE_SETS=1); S:C captures the privilege-boundary crossing from unprivileged task into kernel memory.
Primary rating from Vendor (AMZN).
CVSS VectorVendor: AMZN
Lifecycle Timeline
3DescriptionCVE.org
Missing queue-set type validation in xQueueAddToSet() in the FreeRTOS-Kernel before 11.3.1 might allow an unprivileged task on MPU-enabled ports with configUSE_QUEUE_SETS=1 to read privileged kernel memory. To remediate this issue, users should upgrade to version 11.3.1 or later.
Executive ViewAI
FreeRTOS-Kernel versions before 11.3.1 contain a high-severity memory disclosure vulnerability (CVSS 8.2) that allows existing software processes on vulnerable systems to read sensitive kernel data. This affects embedded and IoT deployments with memory protection enabled; no public exploit identified at time of analysis. Patching is essential to protect confidential system data from potential exposure.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
An issue was discovered in Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP),
Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP), and WITTENSTEIN WHIS Conne
Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP), and WITTENSTEIN WHIS Conne
Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP), and WITTENSTEIN WHIS Conne
An issue was discovered in Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP),
An issue was discovered in Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP),
An issue was discovered in Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP),
An issue was discovered in Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP),
Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP), and WITTENSTEIN WHIS Conne
Amazon Web Services (AWS) FreeRTOS through 1.3.1, FreeRTOS up to V10.0.1 (with FreeRTOS+TCP), and WITTENSTEIN WHIS Conne
The kernel in Amazon Web Services FreeRTOS before 10.4.3 has insufficient bounds checking during management of heap memo
The kernel in Amazon Web Services FreeRTOS before 10.4.3 has an integer overflow in stream_buffer.c for a stream buffer.
EUVD-2026-64034
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB