Preprint
The Cost of Performance: Breaking ThreadX with Kernel Object Masquerading Attacks
28 Apr 2025
Abstract
Microcontroller-based IoT devices often use embedded real-time operating
systems (RTOSs). Vulnerabilities in these embedded RTOSs can lead to
compromises of those IoT devices. Despite the significance of security
protections, the absence of standardized security guidelines results in various
levels of security risk across RTOS implementations. Our initial analysis
reveals that popular RTOSs such as FreeRTOS lack essential security
protections. While Zephyr OS and ThreadX are designed and implemented with
essential security protections, our closer examination uncovers significant
differences in their implementations of system call parameter sanitization. We
identify a performance optimization practice in ThreadX that introduces
security vulnerabilities, allowing for the circumvention of parameter
sanitization processes. Leveraging this insight, we introduce a novel attack
named the Kernel Object Masquerading (KOM) Attack (as the attacker needs to
manipulate one or multiple kernel objects through carefully selected system
calls to launch the attack), demonstrating how attackers can exploit these
vulnerabilities to access sensitive fields within kernel objects, potentially
leading to unauthorized data manipulation, privilege escalation, or system
compromise. We introduce an automated approach involving under-constrained
symbolic execution to identify the KOM attacks and to understand the
implications. Experimental results demonstrate the feasibility of KOM attacks
on ThreadX-powered platforms. We reported our findings to the vendors, who
recognized the vulnerabilities, with Amazon and Microsoft acknowledging our
contribution on their websites.
Metrics
2 Record Views
Details
- Title
- The Cost of Performance: Breaking ThreadX with Kernel Object Masquerading Attacks
- Creators
- Xinhui ShaoZhen LingYue ZhangHuaiyu YanYumeng WeiLan LuoZixia LiuJunzhou LuoXinwen Fu
- Resource Type
- Preprint
- Language
- English
- Academic Unit
- Computer Science
- Other Identifier
- 991022050633904721