ThreadX OSEK Compatibility Layer Counter Pool Exhaustion Causing Memory Corruption
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Eclipse Foundation | Eclipse ThreadX | unaffected |
|
No data.
| Vendor | Product | Versions |
|---|---|---|
| Eclipse | Threadx | — |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.125% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Title | ThreadX OSEK Compatibility Layer Counter Pool Exhaustion Causing Memory Corruption |
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-787 | |
| CPEs | cpe:2.3:a:eclipse:threadx:*:*:*:*:*:*:*:* |
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Eclipse
Eclipse threadx |
|
| Vendors & Products |
Eclipse
Eclipse threadx |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | The vulnerability stems from an incorrect error-checking logic in the CreateCounter() function (in threadx/utility/rtos_compatibility_layers/OSEK/tx_osek.c) when handling the return value of osek_get_counter(). Specifically, the current code checks if cntr_id equals 0u to determine failure, but @osek_get_counter() actually returns E_OS_SYS_STACK (defined as 12U) when it fails. This mismatch causes the error branch to never execute even when the counter pool is exhausted. As a result, when the counter pool is depleted, the code proceeds to cast the error code (12U) to a pointer (OSEK_COUNTER *), creating a wild pointer. Subsequent writes to members of this pointer lead to writes to illegal memory addresses (e.g., 0x0000000C), which can trigger immediate HardFaults or silent memory corruption. This vulnerability poses significant risks, including potential denial-of-service attacks (via repeated calls to exhaust the counter pool) and unauthorized memory access. | |
| Weaknesses | CWE-253 | |
| References |
| |
| Metrics |
cvssV3_1
|