flawopen.com/AI Security/cve-2026-107322-aws-databases-on-aws-psql-command-injection
CVE-2026-107322: injeção de comandos no plugin AWS para agentes
A CVE-2026-107322 afetou o helper psql opcional do plugin databases-on-aws da AWS. O filtro ignorava meta-comandos do psql; conteúdo remoto só poderia levar à execução de comandos no host se o agente depois passasse o valor ao helper. Atualize para 1.7.1 ou posterior.[1], [2], [4]
Um atendente verifica uma nota em busca de instruções SQL extras, mas esquece que o cliente do banco tem sua própria linguagem de comandos. O conteúdo externo só chegaria a esse segundo intérprete se o agente o entregasse ao helper local. A correção rejeita essa sintaxe antes da execução.[1], [2]
Conceitos Centrais e Termos
Meta-comando psql- Instrução interpretada pelo cliente interativo PostgreSQL, não pelo servidor do banco. É uma fronteira de análise distinta do SQL.[2], [3]
CWE-184: lista incompleta de entradas proibidas- O filtro rejeita algumas formas proibidas, mas omite outra que o componente seguinte interpreta de forma especial.[2], [4]
Conteúdo ingerido pelo agente- Conteúdo recebido de fonte remota ou não confiável. A AWS não especifica como o conteúdo preparado chega ao agente.[1]
Mapeamentos de frameworks
- Referência CWE para a fraqueza descrita neste guia: CWE-184
Fluxo de Ataque Passo a Paso
Análise de Causa Raiz
A AWS e o mantenedor identificam um filtro de entrada incompleto no helper opcional de conexão psql do databases-on-aws. Antes da correção, a validação removia literais SQL entre aspas simples de uma cópia de trabalho e rejeitava separadores de instruções e comentários SQL, mas deixava barras invertidas que o cliente psql interpreta como sintaxe de meta-comandos. A correção rejeita as barras invertidas restantes após tratar os literais e antes das verificações existentes, fechando essa fronteira de análise não coberta.[1], [2], [3]
Código-Fonte: Vulnerável vs. Seguro
O patch upstream rejeita barras invertidas restantes após remover literais entre aspas simples, antes de chamar psql e das demais verificações. O trecho é reduzido e não é um parser SQL geral; o tratamento original de aspas tem casos extremos documentados. Para consultas não confiáveis ou complexas, evite o helper shell opcional e use o servidor MCP DSQL ou SQL revisado manualmente, como recomenda a AWS. Execute o processo com privilégios mínimos: isso limita o impacto, mas não substitui a atualização.[2], [3]
Trecho de origem: plugins/databases-on-aws/scripts/psql-connect.sh — trecho reduzido do filtro --command
# Trecho reduzido: as verificações focadas em SQL não rejeitavam a sintaxe de meta-comandos do 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"
# Trecho reduzido baseado na correção upstream da versão 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"
Lista de Verificação de Segurança para Engenharia
- ✓Atualize databases-on-aws para 1.7.1 ou posterior; em checkouts fixados use o commit 8b13a503746a4ebb0402b936645163224058bde3 ou posterior.[1], [2], [3]
- ✓Até atualizar, desative o helper psql opcional e use SQL revisado manualmente ou o servidor MCP DSQL.[1]
- ✓Considere a linguagem de meta-comandos do cliente além de SQL ao filtrar entradas que chegam ao psql.[2], [3]
- ✓Teste que entradas rejeitadas interrompem o fluxo antes de iniciar o psql e cubra consultas SQL válidas.[3]
- ✓Execute agente e helper sem privilégios, com IAM limitado a dsql:DbConnect e função de banco restrita; evite dsql:DbConnectAdmin.[1]
- ✓Se houver indícios de acesso indevido, siga a AWS: revogue ou troque credenciais acessíveis ao processo e revise funções e mapeamentos IAM-banco.[1], [2]
Fontes
- 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