flawopen.com/AI Security/cve-2026-107322-aws-databases-on-aws-psql-command-injection
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]
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]
Framework-Zuordnungen
- CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-184
Schritt-für-Schritt Angriffsablauf
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
# 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"
# 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
- ✓Aktualisieren Sie databases-on-aws auf 1.7.1 oder neuer; gepinnte Checkouts sollten Commit 8b13a503746a4ebb0402b936645163224058bde3 oder neuer nutzen.[1], [2], [3]
- ✓Deaktivieren Sie bis zum Update den optionalen psql-Helfer und verwenden Sie manuell geprüftes SQL oder den DSQL-MCP-Server.[1]
- ✓Berücksichtigen Sie neben SQL auch psqls eigene Meta-Befehlssprache, wenn Eingaben dorthin gelangen.[2], [3]
- ✓Testen Sie, dass zurückgewiesene Eingaben den Ablauf vor dem Start von psql stoppen; testen Sie auch gültige SQL-Fälle.[3]
- ✓Betreiben Sie Agent und Helfer ohne Privilegien, mit IAM nur für dsql:DbConnect und eingeschränkter Datenbankrolle; vermeiden Sie dsql:DbConnectAdmin.[1]
- ✓Bei Hinweisen auf unbefugten Zugriff: Erneuern oder widerrufen Sie nach AWS-Vorgabe erreichbare Anmeldedaten und prüfen Sie Rollen und IAM-Zuordnungen.[1], [2]
Quellen
- AWS Security Bulletin 2026-130 — CVE-2026-107322
- Amazon Agent Plugins for AWS — GHSA-x7f2-wxc8-qpxq
- Upstream fix commit 8b13a503746a4ebb0402b936645163224058bde3
- CVE Program record — CVE-2026-107322
- Related FlawOpen analysis — AWS Security Agent MCP Git argument injection
- Related FlawOpen analysis — PostgreSQL CVE-2025-1094 and the BeyondTrust incident