Medium severity · published Jan 27, 2026
CVE-2026-0648
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…
6.3
CVSS
0.1%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:H
Attack vector
Local
Complexity
High
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
None
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.1% · higher than 2% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
ET
Eclipse ThreadX · Eclipse Foundation
6.1.7 through 6.4.3 · source: vendor
TH
Threadx · Eclipse
6.1.7 before 6.4.5 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-0648
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-0648
Third Party Advisory
https://github.com/eclipse-threadx/threadx/security/advisories/GHSA-xj75-fc68-h4rw
More from Eclipse ThreadX
8.5
CVE-2026-95109
Cortex-A7 module data validation checks only the first address of a caller-supplied range
8.5
CVE-2026-94192
Module object deallocation can free a live ThreadX kernel object
7.0
CVE-2026-95107
Module object allocation size overflow corrupts the manager object pool
6.9
CVE-2026-94024
Module Manager object lookup validates one byte of a module's search name
6.9
CVE-2026-94023
Module delete dispatchers do not enforce kernel-object ownership before irreversible deletion
