Уязвимость связана с неправильной логикой проверки ошибок в функции CreateCounter() (в threadx/utility/rtos_compatibility_layers/OSEK/tx_osek.c) при обработке возвращаемого значения osek_get_counter(). В частности, текущий код проверяет, равен ли cntr_id 0u , чтобы определить сбой, но @osek_get_counter() фактически возвращает E_OS_SYS_STACK (определенный как 12U) в случае сбоя. Это несоответствие приводит к тому, что ветвь ошибок никогда не выполняется, даже если пул счетчиков исчерпан.
В результате, когда пул счетчиков исчерпан, код продолжает приводить код ошибки (12U) к указателю (OSEK_COUNTER *), создавая дикий указатель. Последующие записи в члены этого указателя приводят к записи в недопустимые адреса памяти (например, 0x0000000C), что может вызвать немедленный HardFaults или скрытое повреждение памяти. Эта уязвимость создает значительные риски, включая потенциальные атаки типа «отказ в обслуживании» (посредством повторных вызовов для исчерпания пула счетчиков) и несанкционированный доступ к памяти.
Показать оригинальное описание (EN)
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 v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Eclipse Threadx
cpe:2.3:a:eclipse:threadx:*:*:*:*:*:*:*:*
|
6.1.7
|
6.4.5
|