MITRE ATT&CK / Techniques / T1574.004

Hijack Execution Flow: Dylib Hijacking

ID
T1574.004
Tactics
TA0002 Execution, TA0005 Stealth
Sub-technique of
T1574 Hijack Execution Flow
Platforms
macOS
Data sources
Module Load, File Creation, File Modification
Source
attack.mitre.org
MITRE last modified
12 May 2026

Adversaries may execute their own payloads by placing a malicious dynamic library (dylib) with an expected name in a path a victim application searches at runtime. The dynamic loader will try to find the dylibs based on the sequential order of the search paths. Paths to dylibs may be prefixed with @rpath, which allows developers to use relative paths to specify an array of search paths used at runtime based on the location of the executable. Additionally, if weak linking is used, such as the LC_LOAD_WEAK_DYLIB function, an application will still execute even if an expected dylib is not present. Weak linking enables developers to run an application on multiple macOS versions as new APIs are added.

Adversaries may gain execution by inserting malicious dylibs with the name of the missing dylib in the identified path.[1][2][3][4] Dylibs are loaded into an application's address space allowing the malicious dylib to inherit the application's privilege level and resources. Based on the application, this could result in privilege escalation and uninhibited network access. This method may also evade detection from security products since the execution is masked under a legitimate process.[5][6][7]

Detection

Mitigations (1)

M1022 Restrict File and Directory Permissions

Set directory access controls to prevent file writes to the search paths for applications, both in the folders where applications are run from and the standard dylib folders.

Software (1)

References

  1. Wardle Dylib Hijack Vulnerable Apps
  2. Wardle Dylib Hijacking OSX 2015
  3. Github EmpireProject HijackScanner
  4. Github EmpireProject CreateHijacker Dylib
  5. Writing Bad Malware for OSX
  6. wardle artofmalware volume1
  7. MalwareUnicorn macOS Dylib Injection MachO