AWS опубликовала бюллетень по безопасности 2026-101 в 13:00 PDT 4 сентября — 20:00 UTC, посвященный CVE-2026-85787 в awslabs.postgres-mcp-server. В тексте говорится: "Неполный список запрещенных входных данных в компоненте валидации SQL … может позволить неаутентифицированному участнику изменять данные за пределами read-only-области, помещая специально сформированный SQL в контент, который отправляется, когда аутентифицированный пользователь взаимодействует с MCP-сервером."
Что именно сломано
Не база данных и не модель. Ключевая особенность сервера — преобразование естественного языка в SQL для экземпляра Aurora, при этом операции записи блокируются через необязательный флаг --allow_write_query. Read-only-режим был реализован как список запрещенных строк, и этот список оказался неполным. GitHub относит это к CWE-184. Вектор CVSS v4.0 — VC:N/VI:H: конфиденциальность не затронута, целостность — высокая. Оценка составляет 7.1, а по CVSS v3.1 — 6.5.
Кто такой атакующий
Формулировка «неаутентифицированный участник» звучит так, будто речь идет о запросе к открытой конечной точке. Но вектор говорит об обратном: UI:P в v4.0, UI:R в v3.1. Атакующий неаутентифицирован потому, что ему нужно лишь разместить текст там, где его прочитает модель; SQL сгенерирует и отправит агент самого аутентифицированного пользователя. Это косвенная prompt injection с записью в базу данных в качестве полезной нагрузки, оформленная как CVE — один из первых случаев, когда такая схема была каталогизирована как уязвимость продукта, а не как исследовательский кейс.
Что не так с подачей в уведомлении
Фраза «до версии 1.1.7» создает впечатление свежего патча. 1.1.7 был загружен в PyPI 25 июня, то есть за 71 день до бюллетеня, а текущий релиз — 1.2.0. Любой, кто следовал собственным инструкциям README по установке, где ничего не зафиксировано, уже прошел мимо проблемы за несколько месяцев, не зная, что она существует; любой, кто закрепил старую версию, был уязвим в течение десяти недель без публичного предупреждения. В тот же день AWS опубликовала еще одно CVE для MCP-сервера — CVE-2026-85654 в dynamodb-mcp-server, CVSS 7.8, где специально сформированное имя таблицы в файле модели данных становится кодом на любом хосте, который позже выполнит cdk deploy.
Суть проблемы
Механизм безопасности, реализованный как blocklist строк, в компоненте, чья единственная задача — генерировать SQL из недоверенного естественного языка, — это аргумент в пользу того, чтобы обеспечивать привилегии на уровне базы данных, а не парсера. Именно к этому и сводится временная рекомендация AWS по смягчению риска.
