flawopen.com/AI Security/cve-2026-107322-aws-databases-on-aws-psql-command-injection
CVE-2026-107322 : injection de commandes dans le plugin AWS pour agents
CVE-2026-107322 affectait le helper psql facultatif du plugin AWS databases-on-aws. Son filtre omettait les méta-commandes psql ; un contenu distant ne pouvait mener à des commandes sur l’hôte que si l’agent transmettait ensuite la valeur au helper. Passez à la version 1.7.1 ou ultérieure.[1], [2], [4]
Un employé vérifie une note pour y repérer des instructions SQL, mais oublie que le client de base de données possède son propre langage de commandes. Un contenu externe n’atteindrait ce second interpréteur que si l’agent le remettait au helper local. Le correctif rejette cette syntaxe avant exécution.[1], [2]
Concepts Clés et Termes
Méta-commande psql- Instruction interprétée par le client interactif PostgreSQL, et non par le serveur. C’est une frontière d’analyse distincte de SQL.[2], [3]
CWE-184 : liste incomplète d’entrées interdites- Le filtre rejette certaines formes, mais en omet une autre que le composant suivant interprète spécialement.[2], [4]
Contenu ingéré par l’agent- Contenu reçu depuis une source distante ou non fiable. AWS ne précise pas comment le contenu préparé atteint l’agent.[1]
Correspondances de référentiels
- Référence CWE pour la faiblesse décrite dans ce guide : CWE-184
Déroulement de l'Attaque Étape par Étape
Analyse de Cause Racine
AWS et le mainteneur attribuent CVE-2026-107322 à un filtrage incomplet dans le helper facultatif de connexion psql de databases-on-aws. Avant le correctif, la validation supprimait les littéraux SQL entre apostrophes d’une copie de travail et rejetait les séparateurs d’instructions et les commentaires SQL, mais laissait des barres obliques inverses que le client psql interprète comme une syntaxe de méta-commandes. Le correctif rejette ces barres restantes après le traitement des littéraux et avant les contrôles existants, fermant ainsi cette frontière d’analyse oubliée.[1], [2], [3]
Code Source : Vulnérable vs Sécurisé
Le patch upstream rejette les barres obliques inverses restantes après le retrait des littéraux entre apostrophes simples, avant l’appel de psql et les autres contrôles. Cet extrait est réduit et ne constitue pas un analyseur SQL général ; le traitement initial des apostrophes présente des cas limites documentés. Pour les requêtes complexes ou non fiables, évitez le helper shell facultatif et utilisez le serveur MCP DSQL ou du SQL vérifié manuellement, comme le recommande AWS. Exécutez le processus avec le minimum de droits : cela limite l’impact sans remplacer la mise à niveau.[2], [3]
Extrait source: plugins/databases-on-aws/scripts/psql-connect.sh — extrait réduit du filtre --command
# Extrait réduit : les contrôles axés sur SQL ne rejetaient pas la syntaxe des méta-commandes de psql.
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"
# Extrait réduit basé sur le correctif upstream de la 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"
Liste de Contrôle de Sécurité pour l'Ingénierie
- ✓Passez databases-on-aws à 1.7.1 ou ultérieur ; pour les checkouts épinglés, utilisez le commit 8b13a503746a4ebb0402b936645163224058bde3 ou ultérieur.[1], [2], [3]
- ✓Avant la mise à niveau, désactivez le helper psql facultatif et utilisez du SQL vérifié manuellement ou le serveur MCP DSQL.[1]
- ✓Pour toute entrée envoyée à psql, tenez compte du langage distinct de méta-commandes du client, en plus de SQL.[2], [3]
- ✓Testez que les entrées rejetées arrêtent le flux avant le démarrage de psql et couvrez aussi les requêtes SQL valides.[3]
- ✓Exécutez agent et helper sans privilèges, avec un rôle IAM limité à dsql:DbConnect et un rôle de base restreint ; évitez dsql:DbConnectAdmin.[1]
- ✓En cas d’indice d’accès indu, suivez AWS : renouvelez ou révoquez les identifiants accessibles et examinez les rôles et associations IAM-base.[1], [2]
Sources
- 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