PATH Environment Variable Abuse

Overview

Abusing the PATH environment variable in Unix/Linux allows attackers to escalate privileges by exploiting scripts, cron jobs, or SUID binaries that use relative command paths, executing malicious binaries in user-controlled directories.

CWE Mappings: CWE-426 (Untrusted Search Path), CWE-732 (Incorrect Permissions)

Common Vulnerabilities

  1. Insecure Command Execution: Scripts/binaries use relative commands (e.g., cp vs /bin/cp) in privileged contexts.

  2. Misconfigured Cron Jobs: Cron jobs run as root without PATH sanitization, using relative commands.

  3. SUID/SGID Binaries: Execute commands without absolute paths, allowing PATH manipulation.

  4. Systemd Services: Run scripts with relative commands and unsanitized PATH.

Impact

  • Privilege Escalation: Gain root or high-privilege access.

  • Code Execution: Run arbitrary code with elevated permissions.

  • Persistence: Install backdoors via modified scripts.

  • Data Access: Access sensitive system resources.

Detection

Reconnaissance

Analysis

Exploitation

Malicious Binary Injection

Verify

Mitigation

  1. Use Absolute Paths:

  2. Sanitize PATH:

  3. Restrict Permissions:

  4. Drop Privileges:

Testing Checklist

Tools

  • Manual: find, grep, strings, ltrace, ps

  • Automated: LinPEAS, LinEnum, pspy, Metasploit

  • Labs: Hack The Box, TryHackMe, VulnHub, OverTheWire

Red Flags

  • SUID binaries with relative commands

  • Cron jobs without PATH sanitization

  • Root scripts in writable directories

  • Systemd services with user-controlled scrip

Last updated