T1574.006: Dynamic Linker Hijacking
Adversaries may execute their own malicious payloads by hijacking environment variables the dynamic linker uses to load shared libraries. During the execution preparation phase of a program, the dynamic linker loads specified absolute paths of shared libraries from various environment variables and files, such as LD_PRELOAD on Linux or DYLD_INSERT_LIBRARIES on macOS.[1][2][3] Libraries specified in environment variables are loaded first, taking precedence over system libraries with the same function name.[4][5][6] Each platform's linker uses an extensive list of environment variables at different points in execution. These variables are often used by developers to debug binaries without needing to recompile, deconflict mapped symbols, and implement custom functions in the original library.[7]
Hijacking dynamic linker variables may grant access to the victim process's memory, system/network resources, and possibly elevated privileges. On Linux, adversaries may set LD_PRELOAD to point to malicious libraries that match the name of legitimate libraries which are requested by a victim program, causing the operating system to load the adversary's malicious code upon execution of the victim program. For example, adversaries have used `LD_PRELOAD` to inject a malicious library into every descendant process of the `sshd` daemon, resulting in execution under a legitimate process. When the executing sub-process calls the `execve` function, for example, the malicious library’s `execve` function is executed rather than the system function `execve` contained in the system library on disk. This allows adversaries to Hide Artifacts from detection, as hooking system functions such as `execve` and `readdir` enables malware to scrub its own artifacts from the results of commands such as `ls`, `ldd`, `iptables`, and `dmesg`.[8][9][10]
Hijacking dynamic linker variables may grant access to the victim process's memory, system/network resources, and possibly elevated privileges.
Analyst context for executives and security teams
Dynamic Linker Hijacking matters because a Linux or macOS program can be made to load an attacker-controlled shared library before the expected system library. That can turn otherwise legitimate processes into execution and stealth vehicles, potentially exposing process memory, system or network resources, and privileges associated with the victim process. For leaders, the key issue is not just malware execution; it is whether Unix-like servers, macOS endpoints, container-adjacent Linux systems, and network appliances have enough hardening and telemetry to prove trusted code is being loaded at runtime.
Executive priority
Prioritize this where Linux or macOS systems support business-critical services, identity infrastructure, developer workstations, cloud workloads, or appliances. The ATT&CK relationships tie this behavior to Hijack Execution Flow and to malware families affecting Linux, macOS, containers/IaaS, and network devices, so coverage should be assessed as part of resilience, incident response readiness, and audit evidence for execution control and operating system hardening. Executives should ask whether teams can identify suspicious dynamic linker environment variables and unauthorized shared library loading before an incident depends on forensic reconstruction.
Technical view
ATT&CK lists this as a Linux and macOS sub-technique under Hijack Execution Flow, with tactics of execution and stealth. The behavior centers on dynamic linker variables and files such as LD_PRELOAD on Linux and DYLD_INSERT_LIBRARIES on macOS, where specified libraries can take precedence during program startup. SOC and IR teams should validate visibility into process launches, inherited environment variables, shared library loads, modified or unusual .so/dylib files, and trusted processes unexpectedly loading nonstandard libraries. Particular attention should be paid to long-running service parents and descendants, such as the ATT&CK-described sshd example, because malicious library loading may occur under otherwise legitimate process names.
Likely telemetry
- Process creation events with command line, parent/child process lineage, user, and executable path on Linux and macOS
- Captured process environment variables or equivalent endpoint telemetry showing dynamic linker variables such as LD_PRELOAD and DYLD_INSERT_LIBRARIES
- Dynamic/shared library load telemetry, including library path, process name, signer or file metadata where available, and load order indicators
- File creation/modification events for shared libraries and dynamic linker configuration-related locations
- Integrity or configuration monitoring for operating system hardening baselines and unauthorized library paths
Detection direction
- Because ATT&CK provides no official detection text, treat detection as a validation exercise rather than an assumed control.
- Use the related DET0435 detection strategy as a starting point for engineering detections around Hijack Execution Flow: Dynamic Linker Hijacking.
- Alert on risky dynamic linker environment variables applied to sensitive, privileged, externally exposed, or high-value processes, while accounting for legitimate developer/debugging use to reduce false positives.
- Baseline expected shared libraries and load paths for critical services; investigate nonstandard writable paths, recently created libraries, or libraries loaded before expected system libraries.
- Correlate suspicious library loading with stealth indicators described by ATT&CK, such as attempts to affect functions used by common administrative commands or hide artifacts from command output.
Mitigation priorities
- Start with operating system configuration hardening aligned to M1028: reduce unnecessary functionality, protect dynamic linker-related configuration, and enforce secure defaults on Linux and macOS systems.
- Apply execution prevention aligned to M1038: restrict unauthorized or untrusted code and shared libraries from executing or loading where feasible.
- Prioritize critical servers, identity-facing services, developer build systems, cloud Linux workloads, macOS endpoints, and supported network devices because the supplied relationships include Linux, macOS, Containers, IaaS, and Network Devices in associated software context.
- Use file integrity monitoring and change-control evidence for shared library locations and service runtime configuration to support compliance and IR readiness.
- Ensure incident response playbooks include collection of process environment, library load evidence, service lineage, and suspicious shared libraries before systems are rebuilt or restarted.
Analyst notes and limits
This object is a sub-technique of T1574 Hijack Execution Flow and is scoped by ATT&CK to Linux and macOS for the technique itself. The official description emphasizes execution and stealth through dynamic linker behavior, including LD_PRELOAD and DYLD_INSERT_LIBRARIES, and notes possible access to process memory, system/network resources, and elevated privileges. Relationship context indicates one detection strategy and mitigations M1028 Operating System Configuration and M1038 Execution Prevention, plus observed use relationships to named groups and software; these relationships should inform threat modeling without implying current activity in any specific environment.
MITRE does not provide official detection guidance for this object in the supplied fields. The related detection strategy is named but not detailed here. Practical detection quality depends on whether the organization collects environment variables, shared library load events, and file integrity evidence on Linux and macOS. This take does not assess likelihood of exploitation, attribution, or customer exposure without local telemetry and threat intelligence.
Dynamic Linker Hijacking
Adversaries may execute their own malicious payloads by hijacking environment variables the dynamic linker uses to load shared libraries. During the execution preparation phase of a program, the dynamic linker loads specified absolute paths of shared libraries from various environment variables and files, such as LD_PRELOAD on Linux or DYLD_INSERT_LIBRARIES on macOS.[1][2][3] Libraries specified in environment variables are loaded first, taking precedence over system libraries with the same function name.[4][5][6] Each platform's linker uses an extensive list of environment variables at different points in execution. These variables are often used by developers to debug binaries without needing to recompile, deconflict mapped symbols, and implement custom functions in the original library.[7]
Hijacking dynamic linker variables may grant access to the victim process's memory, system/network resources, and possibly elevated privileges. On Linux, adversaries may set LD_PRELOAD to point to malicious libraries that match the name of legitimate libraries which are requested by a victim program, causing the operating system to load the adversary's malicious code upon execution of the victim program. For example, adversaries have used `LD_PRELOAD` to inject a malicious library into every descendant process of the `sshd` daemon, resulting in execution under a legitimate process. When the executing sub-process calls the `execve` function, for example, the malicious library’s `execve` function is executed rather than the system function `execve` contained in the system library on disk. This allows adversaries to Hide Artifacts from detection, as hooking system functions such as `execve` and `readdir` enables malware to scrub its own artifacts from the results of commands such as `ls`, `ldd`, `iptables`, and `dmesg`.[8][9][10]
Hijacking dynamic linker variables may grant access to the victim process's memory, system/network resources, and possibly elevated privileges.
How security teams should use this page
Treat this object as behavior context, not an attribution claim. Validate the related groups, software, data sources, and mitigations against official ATT&CK relationships and your own telemetry before making control-coverage decisions.
Related techniques
This mirrors the MITRE pattern of making group, software, campaign, and technique relationships scannable. Relationship notes come from mirrored ATT&CK relationship text when available.
| Domain | ID | Name | Relationship / procedure |
|---|---|---|---|
| Enterprise | T1574 | Hijack Execution Flow | This object subtechnique of Hijack Execution Flow. |
Groups, software, and campaigns
G0143: Aquatic Panda
Aquatic Panda is a suspected China-based threat group with a dual mission of intelligence collection and industrial espionage. Active since at least May 2020, Aquatic Panda has primarily targeted entities in the telecommunications, technology, and government sectors.[1]
G0106: Rocke
Rocke is an alleged Chinese-speaking adversary whose primary objective appeared to be cryptojacking, or stealing victim system resources for the purposes of mining cryptocurrency. The name Rocke comes from the email address "rocke@live.cn" used to create the wallet which held collected cryptocurrency. Researchers have detected overlaps between Rocke and the Iron Cybercrime Group, though this attribution has not been confirmed.[1]
G0096: APT41
APT41 is a threat group that researchers have assessed as Chinese state-sponsored espionage group that also conducts financially-motivated operations. Active since at least 2012, APT41 has been observed targeting various industries, including but not limited to healthcare, telecom, technology, finance, education, retail and video game industries in 14 countries.[1] Notable behaviors include using a wide range of malware and tools to complete mission objectives. APT41 overlaps at least partially with public reporting on groups including BARIUM and Winnti Group.[2][3]
S0601: Hildegard
S0394: HiddenWasp
HiddenWasp is a Linux-based Trojan used to target systems for remote control. It comes in the form of a statically linked ELF binary with stdlibc++.[1]
S0658: XCSSET
XCSSET is a modular macOS malware family delivered through infected Xcode projects and executed when the project is compiled. Active since August 2020, it has been observed installing backdoors, spoofed browsers, collecting data, and encrypting user files. It is composed of SHC-compiled shell scripts and run-only AppleScripts, often hiding in apps that mimic system tools (such as Xcode, Mail, or Notes) or use familiar icons (like Launchpad) to avoid detection.[1][2][3]
S9024: SPAWNCHIMERA
SPAWNCHIMERA is a backdoor that supports command and control and can inject malicious components into native processes.[1][2][3] SPAWNCHIMERA It incorporates capabilities from multiple tools within the SPAWN malware family, including SPAWNANT, SPAWNMOLE, and SPAWNSNAIL.[4][2][3] SPAWNCHIMERA was first reported in April 2024.[2] SPAWNCHIMERA has been observed in activity attributed to People's Republic of China (PRC) state-sponsored threat actors, including UNC5221..[4][5][2][6]
S1105: COATHANGER
COATHANGER is a remote access tool (RAT) targeting FortiGate networking appliances. First used in 2023 in targeted intrusions against military and government entities in the Netherlands along with other victims, COATHANGER was disclosed in early 2024, with a high confidence assessment linking this malware to a state-sponsored entity in the People's Republic of China. COATHANGER is delivered after gaining access to a FortiGate device, with in-the-wild observations linked to exploitation of CVE-2022-42475. The name COATHANGER is based on a unique string in the malware used to encrypt configuration files on disk: “She took his coat and hung it up”.[1]
S1220: MEDUSA
S0377: Ebury
Ebury is an OpenSSH backdoor and credential stealer targeting Linux servers and container hosts developed by Windigo. Ebury is primarily installed through modifying shared libraries (`.so` files) executed by the legitimate OpenSSH program. First seen in 2009, Ebury has been used to maintain a botnet of servers, deploy additional malware, and steal cryptocurrency wallets, credentials, and credit card details.[1][2][3][4]
All related ATT&CK context
Mitigation direction
Object version and sync metadata
The fields below describe the current mirrored snapshot. When Glexia retains multiple ATT&CK source imports, you can open the table to compare the same object across releases (hashes and MITRE timestamps). For MITRE’s own release notes and roadmap, see ATT&CK resources — Updates .
Imported snapshots across ATT&CK releases (1)
| Release | Bundle imported | Object version | Modified | Status | Raw hash |
|---|---|---|---|---|---|
| 19.1 | 3.0 | Current bundle | 809e89f758ee… |
Mirrored ATT&CK source object
The raw object is retained through the mirrored ATT&CK source bundle and object hash. The raw endpoint returns the exact object from the mirrored bundle when available.
External references and citations
MITRE external references are preserved separately from Glexia analysis so citations remain traceable to their original source records.
-
[1]
TheEvilBit DYLD_INSERT_LIBRARIES
Fitzl, C. (2019, July 9). DYLD_INSERT_LIBRARIES DYLIB injection in macOS / OSX. Retrieved March 26, 2020.
Open source URL -
[2]
Timac DYLD_INSERT_LIBRARIES
Timac. (2012, December 18). Simple code injection using DYLD_INSERT_LIBRARIES. Retrieved March 26, 2020.
Open source URL -
[3]
Gabilondo DYLD_INSERT_LIBRARIES Catalina Bypass
Jon Gabilondo. (2019, September 22). How to Inject Code into Mach-O Apps. Part II.. Retrieved March 24, 2021.
Open source URL -
[4]
Man LD.SO
Kerrisk, M. (2020, June 13). Linux Programmer's Manual. Retrieved June 15, 2020.
Open source URL -
[5]
TLDP Shared Libraries
The Linux Documentation Project. (n.d.). Shared Libraries. Retrieved January 31, 2020.
Open source URL -
[6]
Apple Doco Archive Dynamic Libraries
Apple Inc.. (2012, July 23). Overview of Dynamic Libraries. Retrieved March 24, 2021.
Open source URL -
[7]
Baeldung LD_PRELOAD
baeldung. (2020, August 9). What Is the LD_PRELOAD Trick?. Retrieved March 24, 2021.
Open source URL -
[8]
ESET Ebury Oct 2017
Vachon, F. (2017, October 30). Windigo Still not Windigone: An Ebury Update . Retrieved February 10, 2021.
Open source URL -
[9]
Intezer Symbiote 2022
Joakim Kennedy and The BlackBerry Threat Research & Intelligence Team. (2022, June 9). Symbiote Deep-Dive: Analysis of a New, Nearly-Impossible-to-Detect Linux Threat. Retrieved March 24, 2025.
Open source URL -
[10]
Elastic Security Labs Pumakit 2024
Remco Sprooten and Ruben Groenewoud. (2024, December 11). Declawing PUMAKIT. Retrieved March 24, 2025.
Open source URL -
[11]
mitre-attack T1574.006Open source URL
Source: MITRE ATT&CK®. © 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. Glexia is not affiliated with or endorsed by MITRE.