Module Manager object lookup validates one byte of a module's search name
Affected packages
| Ecosystem | Package | Affected | Fixed |
|---|---|---|---|
| Eclipse Foundation | Eclipse ThreadX |
6.0.1 – 6.5.1.202602a |
— |
Original description The description as published by the source.
The Module Manager's object lookup validated one byte of a memory-protected module's search name and then walked as much of it as the module declared, in privileged mode, with the kernel's preemption count raised. Both lookup dispatchers are affected: the recommended txm_module_object_pointer_get_extended is handed a length and does not use it to bound the buffer, and the deprecated txm_module_object_pointer_get supplies the largest value a UINT can hold, so it removes the bound rather than lacking one.
A module can make the walk unbounded without knowing anything about the memory it reaches, and where the walk reaches memory a privileged read cannot take, the resulting fault leaves the kernel unable to preempt for the rest of the system's life.
Vulnerable functions: _txm_module_manager_txm_module_object_pointer_get_dispatch, _txm_module_manager_txm_module_object_pointer_get_extended_dispatch (both in common_modules/module_manager/inc/txm_module_manager_dispatch.h) and _txm_module_manager_object_name_compare (common_modules/module_manager/src/txm_module_manager_util.c).
Source: NIST National Vulnerability Database NVD GitHub Advisory
References
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov