FlawOpen

flawopen.com/AI Security/cve-2026-107322-aws-databases-on-aws-psql-command-injection

● CVE-2026-107322 · CVSS 7.8[1], [4] · Hoch
Sicherheitsforschung · FlawOpen

CVE-2026-107322: Befehlsinjektion im AWS-Agenten-Plugin

CVE-2026-107322 betraf den optionalen psql-Helfer des AWS-Plugins databases-on-aws. Der Filter übersah psql-Meta-Befehle; entfernte Inhalte konnten nur dann Befehle auf dem Host ausführen, wenn der Agent den Wert später an den Helfer übergab. Aktualisieren Sie auf 1.7.1 oder neuer.[1], [2], [4]

CVSS-VektorCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H[1], [4]
💡 Einfache Erklärung (ELI5)

Ein Mitarbeiter prüft einen Zettel auf zusätzliche SQL-Anweisungen, vergisst aber, dass der Datenbankclient eine eigene Befehlssprache hat. Externe Inhalte gelangen nur dann zum zweiten Interpreter, wenn der Agent sie dem lokalen Helfer übergibt. Die Korrektur weist diese Syntax vor dem Start zurück.[1], [2]

Kernkonzepte & Begriffe

psql-Meta-Befehl
Anweisung des interaktiven PostgreSQL-Clients, nicht des Datenbankservers. Dies ist eine eigene Parser-Grenze neben SQL.[2], [3]
CWE-184: unvollständige Liste verbotener Eingaben
Der Filter weist manche verbotene Formen zurück, übersieht aber eine andere, die die nächste Komponente speziell interpretiert.[2], [4]
Vom Agenten eingelesene Inhalte
Inhalte aus einer entfernten oder nicht vertrauenswürdigen Quelle. AWS erklärt nicht, wie präparierte Inhalte zum Agenten gelangen.[1]
Lokaler Helfer
Optionales psql-Skript auf dem Agenten-Host; Systembefehle laufen mit den Rechten dieses Prozesses.[1], [3]

Framework-Zuordnungen

  • CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-184

Schritt-für-Schritt Angriffsablauf

Schritt 1

Nicht vertrauenswürdige Inhalte erreichen den Agenten

AWS zufolge kann ein nicht authentifizierter Angreifer Inhalte zur Verarbeitung bereitstellen. Die Meldung nennt weder Quelle noch Ablauf; leiten Sie keinen bestimmten Prompt-Injection-Pfad ab.[1], [2]

Schritt 2

Der Agent übergibt einen Wert an den Helfer

Der verwundbare Fall setzt voraus, dass der Agent den lokalen Helfer mit dem präparierten Wert aufruft. Das Einlesen allein ist kein dokumentierter Auslöser.[1], [3]

Schritt 3

SQL-Prüfungen erfassen psqls Befehlssprache nicht

Der Helfer filtert Trenner und SQL-Kommentare, weist verbleibende Backslashes aber nicht zurück. psql wertet Meta-Befehle lokal aus.[2], [3]

Schritt 4

Der Helfer weist Syntax vor der Ausführung zurück

Der Patch prüft die Backslashes vor den bisherigen SQL-Prüfungen. Aktualisieren Sie auf 1.7.1 oder neuer und prüfen Sie jede Agentenumgebung.[1], [2], [3]

Ursachenanalyse

AWS und der Maintainer führen CVE-2026-107322 auf eine unvollständige Filterung im optionalen psql-Verbindungshelfer von databases-on-aws zurück. Vor der Korrektur entfernte die Prüfung SQL-Literale in einfachen Anführungszeichen aus einer Arbeitskopie und wies SQL-Anweisungstrenner sowie Kommentare zurück, ließ aber Backslashes durch, die der psql-Client als Meta-Befehlssyntax interpretiert. Die Korrektur weist diese verbleibenden Backslashes nach der Literalbehandlung und vor den vorhandenen Prüfungen zurück und schließt damit die übersehene Parsergrenze.[1], [2], [3]

Quellcode: Verwundbar vs. Sicher

Der Upstream-Patch weist nach dem Entfernen einfacher SQL-Literale und vor dem Aufruf von psql sowie den übrigen Prüfungen verbleibende Backslashes zurück. Der Auszug ist verkürzt und kein allgemeiner SQL-Parser; die ursprüngliche Behandlung von Anführungszeichen hat dokumentierte Grenzfälle. Verwenden Sie für komplexe oder nicht vertrauenswürdige Abfragen nicht den optionalen Shell-Helfer, sondern den DSQL-MCP-Server oder manuell geprüftes SQL, wie AWS empfiehlt. Betreiben Sie den Prozess mit minimalen Rechten: Das begrenzt die Auswirkungen, ersetzt aber nicht das Update.[2], [3]

Quelltextauszug: plugins/databases-on-aws/scripts/psql-connect.sh — gekürzter Auszug des --command-Filters

VERWUNDBARE IMPLEMENTIERUNG
# Gekürzter Auszug: Die SQL-Prüfungen lehnten die Syntax von psql-Meta-Befehlen nicht ab.
stripped=$(echo "$COMMAND" | sed "s/'[^']*'//g")
if echo "$stripped" | grep -q ';'; then
  echo "Error: multiple SQL statements are not allowed." >&2
  exit 1
fi
if echo "$stripped" | grep -q -- '--'; then
  echo "Error: SQL comments are not allowed." >&2
  exit 1
fi
psql --command "$COMMAND"
GEHÄRTETER SICHERHEITS-PATCH
# Gekürzter Auszug auf Grundlage der Upstream-Korrektur in Version 1.7.1.
stripped=$(echo "$COMMAND" | sed "s/'[^']*'//g")
if echo "$stripped" | grep -q '\\'; then
  echo "Error: psql meta-commands are not allowed." >&2
  exit 1
fi
if echo "$stripped" | grep -q ';'; then
  echo "Error: multiple SQL statements are not allowed." >&2
  exit 1
fi
if echo "$stripped" | grep -q -- '--'; then
  echo "Error: SQL comments are not allowed." >&2
  exit 1
fi
psql --command "$COMMAND"

Checkliste für Engineering & Systemsicherheit

Quellen

← AI Security Directory →