CVE-2026-87911 – Umgehung der Schreibschutz-Erzwingung, die die Ausführung von Betriebssystembefehlen in der SQL-Validierungskomponente von Amazon awslabs postgres-mcp-server ermöglicht
Bulletin-ID: 2026-104-AWS
Geltungsbereich: AWS
Inhaltstyp: Wichtig (erfordert Aufmerksamkeit)
Datum der Veröffentlichung: 09.09.2026, 12.30 Uhr PDT
Beschreibung:
awslabs.postgres-mcp-server ist ein Python-Paket, das einen Postgres-MCP-Server implementiert. Wir haben die Schwachstelle CVE-2026-87911 identifiziert, bei der eine OS-Command-Injection-Schwachstelle bei der Schreibschutz-Erzwingung der SQL-Validierungskomponente in Amazon awslabs postgres-mcp-server vor Version 1.1.7 es einem nicht authentifizierten Akteur ermöglichen könnte, Betriebssystembefehle auf dem Host eines selbstverwalteten PostgreSQL-Servers auszuführen, indem er eine manipulierte COPY … TO PROGRAM-Anweisung in Inhalte einfügt, die verarbeitet werden, wenn ein authentifizierter Benutzer mit dem MCP-Server in seinem standardmäßigen schreibgeschützten Modus interagiert.
Betroffene Versionen:
awslabs.postgres-mcp-server vor Version 1.1.7, selbstverwaltetes PostgreSQL-Bereitstellungsprofil (Verbindungsmethode: PG_WIRE_PROTOCOL), bei dem die konfigurierte Datenbankrolle „superuser“ oder „pg_execute_server_program“ enthält.
Behebung:
Dieses Problem wurde in der Version 1.1.7 von awslabs postgres-mcp-server (Python-Paket) in pypi behoben.
Problemumgehungen:
Die effektivste Schutzmaßnahme besteht darin, den MCP-Server über eine dedizierte Postgres-Rolle auszuführen. Erhält diese Rolle nur die minimal erforderlichen Rechte, wird die Sicherheitsgrenze direkt durch die Datenbank selbst erzwungen. – unabhängig davon, welche SQL-Anweisungen sie erreichen. Insbesondere:
- Stellen Sie keine Verbindung als Superuser, rds_superuser oder als Cluster-Master-Benutzer her. Diese Rollen umgehen die Sicherheit auf Zeilenebene, können Anmeldeinformationskataloge (pg_authid, pg_user_mappings) lesen und andere Sitzungen beenden.
- Zur Verwendung „Nur lesen“ gewähren Sie nur CONNECT + USAGE + SELECT für die vom Agenten benötigten Schemas und erzwingen Sie auf Rollenebene Transaktionen „Nur lesen“.
- Zur Verwendung „Lesen/Schreiben“ erteilen Sie nur die erforderlichen spezifischen Berechtigungen INSERT/UPDATE/DELETE, beschränkt auf die erforderlichen Schemas und Tabellen.
Das Kombinieren einer Rolle mit nur minimalen Berechtigungen (durch die Datenbank erzwungen) mit der Blockliste (durch die Anwendung erzwungen) ergibt eine tief gestaffelte Verteidigung: Selbst dann, wenn eine Abfrage durch die Blockliste gelangt, wird das, was die Abfrage tun kann, immer noch durch die Berechtigungen der Rolle beschränkt.
Referenzen:
Danksagung:
Wir möchten Mordehai Attia (Corsen AI) und Ryan von Brubeck für die Zusammenarbeit bei diesem Problem im Rahmen des koordinierten Prozesses zur Offenlegung von Schwachstellen danken.
Bei Fragen oder Bedenken zum Thema Sicherheit wenden Sie sich bitte per E-Mail an aws-security@amazon.com.