Ein symbolischer Link (Symlink) ist ein Dateisystemobjekt, das über seinen Pfad auf eine andere Datei oder ein Verzeichnis verweist, sodass Programme beim Öffnen des Links transparent zum Ziel umgeleitet werden.
Wie symbolische Links funktionieren
Ein symbolischer Link speichert nur den Pfad seines Ziels. Unter Linux und macOS wird er mit ln -s angelegt; Windows unterstützt symbolische Links über mklink sowie NTFS-Junctions und andere Analysepunkte (Reparse Points). Anders als ein Hardlink kann ein Symlink über Dateisystemgrenzen hinweg oder auf ein noch nicht existierendes Ziel zeigen. Symlinks werden häufig genutzt, um Softwareversionen, gemeinsame Konfigurationsdateien und Verzeichnisstrukturen zu verwalten.
Warum symbolische Links für die Sicherheit wichtig sind
Problematisch wird es, wenn ein privilegiertes Programm einem Link folgt, den ein Angreifer angelegt hat. Die Schwäche ist als CWE-59 (Improper Link Resolution Before File Access, „Link Following“) katalogisiert. Typische Szenarien:
- Angriffe über temporäre Dateien – ein Root-Prozess schreibt in eine vorhersehbare Datei unter
/tmp; der Angreifer legt dort vorher einen Symlink auf/etc/passwdoder eine andere sensible Datei an, die dann überschrieben wird. - Time-of-Check to Time-of-Use – die Datei wird zwischen Sicherheitsprüfung und Verwendung gegen einen Link ausgetauscht, eine Race Condition (CWE-367).
- Missbrauch von Windows-Diensten – Junctions und Objektmanager-Links bringen Installer, Update-Dienste oder sogar Antivirenprodukte dazu, mit SYSTEM-Rechten beliebige Dateien zu löschen oder zu schreiben – ein gängiger Weg zur lokalen Rechteausweitung.
- Manipulierte Archive – ZIP- oder tar-Dateien mit Symlinks können Entpackwerkzeuge dazu bringen, außerhalb des Zielordners zu schreiben, ähnlich wie bei Directory Traversal.
So verhindern Sie Symlink-Angriffe
- Unter Linux die Kernel-Einstellung
fs.protected_symlinksaktiviert lassen. - Temporäre Dateien sicher anlegen (etwa mit
mkstemp) und Dateien mit Flags wieO_NOFOLLOWöffnen. - Dateioperationen privilegierter Dienste in für Benutzer beschreibbaren Verzeichnissen vermeiden.
- Linkziele beim Entpacken von Archiven prüfen.





