Search papers, labs, and topics across Lattice.
This paper identifies shared library hijacking as a loader-resolution authenticity problem in Linux systems. They introduce a loader-centric verification framework that enforces authenticity guarantees during the dynamic linker's resolution process using path-bound and location-independent identity models combined with cryptographic hashing. Implemented on glibc systems and evaluated on both general-purpose and embedded Linux, the framework effectively prevents shared library hijacking attacks.
Current defenses against shared library hijacking miss the crucial step of verifying that the resolved shared object is actually the intended and trusted one, leaving systems vulnerable.
Shared library hijacking attacks in the Linux ecosystem, including embedded Linux, are a significant concern. It fundamentally exploits the dynamic linker's library-resolution semantics rather than modifying trusted libraries directly. Prior research has extensively analyzed attack vectors exploiting environment variables, embedded search paths, and dynamic loader internals, demonstrating that hijacking is rooted in fundamental loader behavior rather than isolated misconfigurations. Existing defenses either harden or replace the loader, enforce control-flow integrity after libraries are loaded, or apply file-centric integrity mechanisms such as signatures and measurement frameworks. However, these approaches fail to address a critical gap: none verify whether the shared object actually resolved by the loader is the intended and trusted one. In this paper, we argue that shared library hijacking is fundamentally a loader-resolution authenticity problem and present a loader-centric verification framework that enforces authenticity guarantees for the dynamic linker's resolution process. Our design supports both path-bound and location-independent (i.e., Build-ID-based) identity models combined with cryptographic hashing. We implement our approach on GNU libc (glibc) systems and evaluate it on both general-purpose Linux (e.g., Ubuntu) and embedded Linux (e.g., Buildroot) environments under emulation. Our results demonstrate that our proposed mechanism indeed prevents shared library hijacking attacks.