What is it about?

We investigate how poorly configured linker scripts in popular IoT OS can expose devices to code execution attacks. These scripts often lack memory isolation, enforce weak permissions, and lead to highly predictable memory layouts, making it easier for attackers to identify and reuse code gadgets across devices. Our analysis of major IoT platforms highlights two key vulnerabilities: deterministic memory layouts and weak access controls. We propose a code relocation mechanism to randomize memory layouts and reduce predictability.

Featured Image

Why is it important?

This work highlights the hidden risks in default linker configurations and introduces practical defenses to harden IoT deployments, particularly for small, resource-constrained devices.

Perspectives

This project gave me a firsthand look at how low-level tooling like linker scripts, often overlooked can open serious attack surfaces in IoT resource-constrained environments. It was eye-opening to see how default configurations, when reused blindly across devices, can unintentionally aid attackers. Working on this paper pushed me to think beyond typical exploit vectors and explore how memory layout unpredictability and runtime relocation could be leveraged defensively, even under tight resource constraints. I hope this work sparks more attention toward securing the build chain, not just the application code.

Phi Tuong Lau

Read the Original

This page is a summary of: Adaptive Code Relocation: Mitigating Remote Brute-Force Code Gadgets in Small IoT Devices, August 2025, ACM (Association for Computing Machinery),
DOI: 10.1145/3709017.3737707.
You can read the full text:

Read

Contributors

The following have contributed to this page