Sicherheit
Betriebssystem-Kommandos über Eingaben ausführbar
Woran du es erkennst
Eine Eingabe mit Shell-Meta-Zeichen (;, |, $()) wird an ein Systemkommando weitergereicht: Die Antwort enthält Kommando-Ausgabe oder unterscheidet sich messbar je nach injiziertem Befehl.
Warum es zählt
Command Injection ist die direkte Ausführung fremder Befehle auf dem Server — Vollzugriff im Kontext des Dienstes. Kein anderes Injection-Muster hat einen kürzeren Weg zur kompletten Übernahme.
So behebst du es
- Kindprozesse nicht über eine Shell mit zusammengesetztem Kommandostring starten; APIs mit Argument-Arrays verwenden, sodass kein Shell-Parsing stattfindet.
- Eingaben, die zwingend in Kommandos müssen, strikt per Allowlist validieren (etwa nur [a-z0-9-]) und den Prozess mit minimalen Rechten laufen lassen.