Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconRun malicious unprivileged ThreadX module
-
DeliveryForge control block inside own privileged allocation
-
ExploitPass interior address to privileged service
-
Install_txe_ ID check accepts forged type
-
C2Trigger privileged memset at chosen address
-
ExecuteClear MPU enable bit, escape isolation
-
ImpactFull privileged kernel read/write
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a deployment that uses the ThreadX Module feature with MPU-based memory protection enabled (the isolated 'memory-protected module' model), and the attacker must already be able to run code as such an unprivileged module - e.g. by supplying or compromising a loadable module. This is a local vector (AV:L) with attacker-controlled code already executing (PR:L), no user interaction, and no network exposure. It does not affect ThreadX builds that do not use isolated modules/MPU. The gating factor is therefore the presence of the module-isolation deployment mode plus the ability to introduce or subvert a module, not raw network reachability. |
| Impact | The vendor CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H = 8.5) is internally consistent with the description: this is a local, low-complexity privilege-escalation flaw requiring that attacker-controlled code already run as a loaded ThreadX module. The 'unprivileged' module is not a remote actor - PR:L reflects that the attacker must already be executing code inside a memory-protected module, which is a meaningful prerequisite. No EPSS score, no CISA KEV listing, and no public exploit code were provided; the advisory describes a 'reported chain' (a credible internal proof, not a released weaponized exploit), so this is not confirmed in-the-wild exploitation. The realistic risk is HIGH severity but NARROW reach: the impact (full MPU/isolation bypass to privileged kernel memory read/write) is critical, but it only matters where the ThreadX Module Manager with MPU isolation is actually deployed AND an attacker can supply or already controls a module. Note a labeling tension worth verifying: CWE-125 (out-of-bounds read) understates the flaw - the described primitive is a type-confusion of a forged control-block ID leading to an arbitrary privileged write (memset over an attacker-chosen range), i.e. closer to CWE-843/CWE-787 privilege escalation than a pure OOB read. |
| Exploit ScenarioDerived | An attacker who can load or already runs an unprivileged, memory-protected ThreadX module crafts a fake object control block inside one of its own privileged allocations, forging the control-block ID so the _txe_ layer accepts it as a valid kernel object. Passing the interior address to a privileged service (the reported chain reaches a privileged memset) yields arbitrary kernel-mode memory read/write, which is then used to clear the MPU enable bit and dissolve the module's isolation boundary. No public exploit is available, but the vendor advisory documents a working chain. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 29, 2026
Privilege escalation in Eclipse ThreadX allows an unprivileged, memory-protected ThreadX module to break out of its MPU isolation boundary and obtain privileged (kernel-mode) read and write access to arbitrary memory, including the ability to clear the MPU enable bit and remove its own protection. The attack is local and low-complexity and requires the attacker to already be able to execute code as a loaded, unprivileged module (PR:L), for example by supplying or subverting a loadable module in a deployment that uses the ThreadX Module feature with MPU-based memory protection; systems that do not use isolated modules are not affected. No public exploit code has been identified at time of analysis, and the flaw is not listed in CISA KEV, but the high integrity and confidentiality impact on isolated-module deployments makes it significant.
RemediationAI
No fix version was confirmed in the available data, so administrators should consult the vendor advisory GHSA-rrjj-jwcw-hvf8 (https://github.com/eclipse-threadx/threadx/security/advisories/GHSA-rrjj-jwcw-hvf8) and apply the patched ThreadX release as soon as it is published, including a regeneration/rebuild of any shipped module images. Because the flaw requires attacker-controlled code to already be loaded as a memory-protected module, the most effective compensating control is to stop untrusted modules from being loaded at all: restrict module loading to a signed or otherwise authenticated image pipeline, and remove or disable the Module Manager (TX_ENABLE_MODULE / module support) in builds that do not need loadable modules, at the cost of losing runtime-loadable plugin functionality. Where modules must be supported, enforce load-once semantics from a trusted boot stage and disable or remove any runtime interface that lets an external party supply a module after deployment, and treat module-supplied object handles as untrusted. These measures reduce exposure to the module-introduction prerequisite but do not repair the underlying Module Manager validation flaw, so patching remains the primary remedy.
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
The flaw lives in the ThreadX Module Manager's validation of object addresses passed by a module (CWE-125, out-of-bounds read). When a module names an object address that a privileged service should dereference, the Module Manager only checked whether that address fell outside the calling module. Because the manager's object pool resides outside every module, a module can satisfy that check by shifting an address into the interior of one of its own privileged allocations - an address that denotes no legitimate object. The bytes at that location are bytes the module itself wrote through ordinary create and set services, so the fake control block's ID field can be crafted to read as any object type the module wishes, and the _txe_ service layer's control block ID test then accepts it as valid. According to the reported chain, this lets the attacker steer a privileged memset across an attacker-chosen range, granting privileged memory read/write and the ability to clear the MPU enable bit, thereby dissolving the module's own isolation boundary. The vendor's CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H, 8.5) is internally consistent with this description: local, low-complexity privilege escalation with attacker-controlled code already running as a loaded module.
Know when Threadx 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:H/VA:H/SC:N/SI:N/SA:N
Attacker code already runs as an unprivileged module (PR:L, AV:L, AC:L); forged control block yields privileged arbitrary read/write (C/I/A:H); treated as in-OS privilege escalation so S:U, consistent with vendor SC:N.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
DescriptionCVE.org
An unprivileged, memory-protected ThreadX module can have the kernel read and write memory at addresses of its choosing, in privileged mode, and can use that to clear the MPU enable bit and remove its own isolation boundary.
The Module Manager decided whether a privileged service could dereference an object address a module named by asking only whether that address fell outside the module. The manager's object pool is outside every module, so the test was satisfied by an address shifted into the interior of one of the module's own privileged allocations, which denotes no object at all. The bytes such an address presents as a control block are bytes the module put there through ordinary create and set services, so the control block ID at the front of them could be made to read as any type the module chose, and the _txe_ layer's ID test then agreed. The reported chain uses that to reach a privileged memset across an attacker-chosen range.
Technical POC Analysis
Evidence base: the GHSA-rrjj-jwcw-hvf8 advisory only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Eclipse ThreadX deployments that use isolated modules with MPU-based memory protection can be fully compromised by a local attacker who already controls an unprivileged loadable module, allowing kernel-level read/write access and removal of memory protections. This erodes a core isolation control in embedded, IoT, industrial, or medical products that rely on untrusted modules, creating risks of data tampering, device takeover, and downstream operational disruption. Leadership should care because affected fleets may require emergency mitigations or redesign, even though no public exploit has been identified at time of analysis and only module-isolated systems are exposed.
No vendor-released patch identified at time of analysis. Interim controls include disabling the ThreadX Module feature or avoiding untrusted module loading, enforcing signed-module verification and secure boot, restricting local/debug/update interfaces, network-isolating affected devices, and monitoring for anomalous module loads or MPU changes.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
In Eclipse ThreadX before 6.4.0, xQueueCreate() and xQueueCreateSet() functions from the FreeRTOS compatibility API (uti
Eclipse ThreadX releases prior to 6.4.3 contain an incomplete pointer-validation flaw that lets a module-level caller cr
Eclipse ThreadX versions before 6.4.3 fail to enforce the configured maximum thread priority in certain thread-creation
Secure memory disclosure in Eclipse ThreadX occurs because multiple TrustZone-M non-secure callable (NSC) entry function
Memory corruption in ThreadX RTOS CreateCounter() function allows local attackers with user privileges to trigger hard f
In Eclipse ThreadX before version 6.4.0, the _Mtxinit() function in the Xtensa port was missing an array size check caus
Insufficient validation of syscall parameters in Eclipse ThreadX before 6.4.3, when the memory-protection feature is ena
EUVD-2026-89112
GHSA-j3fp-8rcq-xfj5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB