Sicherheit

Betriebssystem-Kommandos über Eingaben ausführbar

Üblicher Schweregrad: kritisch · Aufwand: mittel

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

  1. Kindprozesse nicht über eine Shell mit zusammengesetztem Kommandostring starten; APIs mit Argument-Arrays verwenden, sodass kein Shell-Parsing stattfindet.
  2. Eingaben, die zwingend in Kommandos müssen, strikt per Allowlist validieren (etwa nur [a-z0-9-]) und den Prozess mit minimalen Rechten laufen lassen.

Zum Nachlesen