Pular para o conteúdo principal

CVE-2026-87911: contorno da imposição do modo somente leitura permitindo a execução de comandos do sistema operacional no componente de validação SQL do awslabs postgres-mcp-server da Amazon

ID do boletim: 2026-104-AWS
Escopo: AWS
Tipo de conteúdo: importante (requer atenção)
Data da publicação: 09/09/2026 12:30 PDT

Descrição:

O awslabs.postgres-mcp-server é um pacote Python que implementa um servidor MCP de Postgres. Encontramos a vulnerabilidade CVE-2026-87911, em que uma fragilidade de injeção de comandos do SO na imposição do modo somente leitura do componente de validação SQL no awslabs postgres-mcp-server da Amazon anterior à versão 1.1.7 pode permitir que um agente não autenticado execute comandos do sistema operacional no host de um servidor PostgreSQL autogerenciado ao incluir um comando COPY malicioso... Instrução TO PROGRAM em conteúdo que é processado quando um usuário autenticado interage com o servidor MCP em seu modo somente leitura padrão.

Versões afetadas:

awslabs.postgres-mcp-server anterior à versão 1.1.7, perfil de implantação autogerenciado do PostgreSQL (método de conexão PG_WIRE_PROTOCOL) em que o perfil de banco de dados configurado contém um superusuário ou pg_execute_server_program.

Resolução:

Esse problema foi resolvido no awslabs postgres-mcp-server (pacote Python), versão 1.1.7, em pypi.

Soluções alternativas:

O controle mais forte é conectar o servidor MCP usando um perfil Postgres dedicado que tenha apenas os privilégios de que realmente precisa, de modo que o próprio banco de dados imponha o limite de segurança, independentemente de qual SQL chegue até ele. Especificamente:

  • Não se conecte como superusuário, rds_superuser ou usuário principal do cluster. Esses perfis ignoram a segurança no nível de linha, podem ler catálogos de credenciais (pg_authid, pg_user_mappings) e encerrar outras sessões.
  • Para uso em modo de somente leitura, conceda apenas CONNECT + USAGE + SELECT nos esquemas de que o agente precisa e force transações de somente leitura no nível de perfil.
  • Para uso em modo de leitura/escrita, conceda apenas os privilégios específicos de INSERT/UPDATE/DELETE necessários, delimitados aos esquemas e tabelas estritamente precisos.

A combinação de um perfil de privilégio mínimo (imposta pelo banco de dados) com a lista de bloqueio (imposta pela aplicação) oferece defesa em profundidade: mesmo que uma consulta passe pela lista de bloqueio, os privilégios do perfil ainda delimitam o que ela pode executar.

Referências:

Reconhecimento:

Gostaríamos de agradecer a Mordehai Attia (Corsen AI) e Ryan von Brubeck pela colaboração nessa questão por meio do processo coordenado de divulgação de vulnerabilidades.


Envie um e-mail para aws-security@amazon.com com qualquer dúvida ou preocupação relacionada à segurança.