Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLoad or control user-mode module
-
DeliveryLoop create/terminate/delete thread
-
ExploitLeak kernel-stack block each cycle
-
ExecutionExhaust shared object pool
-
ImpactSystem-wide thread/object creation fails
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a system using the ThreadX Module Manager with memory-protected user-mode modules, and the attacker must be able to load or already execute such a module with the ability to call the thread create/terminate/delete services. The leak is triggered specifically by the thread-delete path (_txm_module_manager_tx_thread_delete_dispatch), which frees only the TX_THREAD control block and never the separately-allocated privileged kernel stack; the module must repeatedly cycle thread lifecycle and stay loaded for the shared pool to drain. Limiting factors: local access only (AV:L), low-but-nonzero privilege (PR:L - attacker-controlled module code), no remote or unauthenticated path, and impact limited to availability (denial of service). Systems not using user-mode/memory-protected modules are not exposed. |
| Impact | This is a resource-exhaustion denial-of-service (CWE-400) in the Eclipse ThreadX Module Manager, not a code-execution or data-disclosure flaw. The provided CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H) is internally consistent with the description: exploitation is local, requires low privileges (the attacker must already be running a loaded user-mode module), needs no user interaction, and impacts availability only (VC:N/VI:N). The 6.8 score is moderate and well-calibrated - there is no confidentiality or integrity impact, and no scope change. Real-world risk is bounded by the precondition: the attacker must already be able to load/execute a memory-protected user-mode module that can create and delete threads, so this is a privilege-bounded local DoS rather than a remote or unauthenticated threat. No EPSS score, KEV listing, or POC was provided; per the input there is no public exploit identified. The bug is deterministic and trivially triggered once an attacker controls a module (every service returns TX_SUCCESS while the kernel stack leaks), which raises reliability of exploitation, but the local/privileged gate keeps this a targeted insider/compromised-module concern rather than a broadly exploitable one. No signals conflict; the main missing data is EPSS and any independent confirmation of patched versions. |
| Exploit ScenarioDerived | An attacker who can load or already controls a user-mode ThreadX module writes it to create, terminate, and delete a thread in a tight loop. Each iteration leaks one TXM_MODULE_KERNEL_STACK_SIZE block from the shared Module Manager object pool, and after enough cycles the pool is exhausted, after which no memory-protected module can create any kernel object and no user-mode module thread can be created system-wide. No public exploit code was identified at time of analysis, but the trigger is deterministic and requires only ordinary, successful ThreadX API calls. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Denial of service in the Eclipse ThreadX Module Manager (CWE-400) lets a loaded user-mode module permanently drain the shared module object pool by cycling threads. Each thread a module creates consumes two allocations - a TX_THREAD control block plus a separately allocated TXM_MODULE_KERNEL_STACK_SIZE kernel stack - but the thread-delete dispatcher releases only the control block, so every valid create/terminate/delete cycle silently removes one fixed-size block from a finite pool shared by the Module Manager and all other loaded modules. A module that loops this lifecycle long enough exhausts the pool, after which no memory-protected module anywhere in the system can create kernel objects or new user-mode threads. Exploitation requires local execution of a loadable user-mode module (PR:L per the assessed CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H vector) and is purely an availability impact; no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Vendor guidance is published in the Eclipse ThreadX security advisory GHSA-9hhf-6357-hpgq (https://github.com/eclipse-threadx/threadx/security/advisories/GHSA-9hhf-6357-hpgq); no exact patched version is identified in the available data, so treat this as "Patch available per vendor advisory" and confirm the fixed release against the advisory before deploying. The fix itself is small and can be backported: in _txm_module_manager_tx_thread_delete_dispatch, free the kernel-stack pointer recorded in the TX_THREAD control block (TXM_MODULE_KERNEL_STACK_SIZE bytes) back to _txm_module_manager_object_pool in addition to the control block, before unlinking the entry from the module's allocation list. Where patching is not immediately possible, the highest-value compensating control is to stop and restart any module that performs thread churn - a module stop unwinds its whole allocation list and reclaims the leaked kernel stacks, at the cost of resetting that module's runtime state and dropping its live threads. Additionally, audit user-mode modules for create/terminate/delete loops and rate-limit or eliminate thread recycling in favor of a fixed, pre-created thread pool, since a bounded thread count bounds the leak; this requires source changes to the module but removes the trigger entirely. Only load signed or otherwise trusted modules, because the leak requires attacker-controlled module code to run at PR:L, and keep pool-consuming critical modules away from modules permitted to allocate threads (separate Module Manager instances or static allocation for trusted subsystems) so that exhaustion of the shared pool cannot starve them. Monitoring the _txm_module_manager_object_pool free-block count for a monotonic decline while a module is loaded gives detection coverage, and the trade-off for all of these workarounds is that they reduce functionality or isolation rather than eliminating the root-cause free-path defect.
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
ThreadX's module subsystem enables memory-protected (MPU-isolated) user-mode modules whose system calls trap into the privileged Module Manager. Because a module cannot allocate supervisor-mode memory, _txm_module_manager_thread_create performs two allocations from the shared _txm_module_manager_object_pool on its behalf: the TX_THREAD control block requested via txm_module_object_allocate, and a second block of TXM_MODULE_KERNEL_STACK_SIZE bytes backing the privileged kernel stack on which that thread's system calls execute. The kernel-stack pointer is stashed inside the control block and both blocks are linked onto the module's allocation list. The defect lives in _txm_module_manager_tx_thread_delete_dispatch (common_modules/module_manager/inc/txm_module_manager_dispatch.h): the delete path frees only the control block and never the recorded kernel stack, so the stack remains charged to the module until the entire module is stopped and its allocation list unwound. This is the classic CWE-400 uncontrolled-resource-consumption pattern - an asymmetric alloc/free pairing in a fixed-size, cross-module shared heap rather than a memory-safety corruption. The bug is silent by design: every API call returns TX_SUCCESS and every state transition is legal, so the leak is only observable as the pool's free count monotonically declining while a module stays loaded; the CPE entry carries a wildcard version, indicating the defect is presumed present across ThreadX releases rather than confined to a single tagged build.
Know when Eclipse 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:N/VI:N/VA:H/SC:N/SI:N/SA:N
Attacker must run a loaded user-mode module (PR:L, AV:L); trigger is deterministic (AC:L); only the shared pool/availability is affected (A:H, C:N/I:N), no scope change.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
DescriptionCVE.org
One logical thread of a user-mode ThreadX module costs the Module Manager's shared object pool two allocations, not one. The module asks for a TX_THREAD control block through txm_module_object_allocate; _txm_module_manager_thread_create then takes a second allocation of TXM_MODULE_KERNEL_STACK_SIZE bytes for the privileged kernel stack that thread's system calls run on, and records it in the control block. Both come from _txm_module_manager_object_pool and both are linked onto the module's allocation list.
The Module Manager's thread-delete dispatcher released only the first. The kernel stack stayed allocated until the whole module was stopped, so a module that creates, terminates and deletes threads in a loop - every state transition valid, every service returning TX_SUCCESS - removed a fixed block from a finite pool shared by the manager and by every other loaded module, on every cycle, for as long as it stayed loaded. Once the pool is exhausted, no memory-protected module can create any kernel object and no user-mode module thread can be created anywhere in the system.
Vulnerable function: _txm_module_manager_tx_thread_delete_dispatch, in common_modules/module_manager/inc/txm_module_manager_dispatch.h.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Eclipse Threadx
View allEclipse ThreadX's Cortex-A7 MMU module port accepts a caller-supplied buffer range after validating only its first byte,
Eclipse ThreadX firmware built with Module Manager and loadable modules enabled contains a use-after-free in txm_module_
Integer overflow in the Eclipse ThreadX module manager lets a loaded module under-allocate an object-pool block and corr
A crafted ThreadX module can permanently hang the entire kernel by abusing the Module Manager's object-lookup path: the
Eclipse ThreadX deployments that use the Module Manager to load untrusted or mixed-trust modules let a module destroy ke
Out-of-bounds read in the Eclipse ThreadX Module Manager's block-pool create dispatcher (_txm_module_manager_tx_block_po
Eclipse ThreadX's memory-protected module support under-validates queue extents in the front-send path: the Module Manag
EUVD-2026-105149
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB