DynamoDB MCP Server допускает выполнение кода — безопасна версия 2.1.6

Бюллетень AWS от 4 сентября 2026 года описывает CVE-2026-85654 в генераторе инфраструктуры пакета awslabs.dynamodb-mcp-server. Уязвимы версии с 2.0.10 по 2.1.5 включительно, а минимальным выпуском с исправлением является 2.1.6.
Уязвимый сервер может привести к выполнению произвольного кода на компьютере, где разворачивают сгенерированное приложение. Опасный путь начинается со специально сформированного имени таблицы, индекса или атрибута в файле модели данных. Для устранения риска нужно обновить фактически запускаемый пакет до версии 2.1.6 или новее, затем полностью перезапустить клиент и повторно проверить номер выпуска.
Как определить, уязвима ли установленная версия

Граница затронутых выпусков однозначна: версии до 2.0.10 не входят в заявленный диапазон этой конкретной уязвимости, версии 2.0.10–2.1.5 уязвимы, начиная с 2.1.6 дефект исправлен. Отсутствие более раннего выпуска в диапазоне не означает, что его безопасно оставлять в эксплуатации: бюллетень относится только к CVE-2026-85654 и не оценивает остальные возможные проблемы старого программного обеспечения.
Карточка уязвимости GitHub указывает высокий уровень опасности и оценку 7,1 из 10 по шкале CVSS 4.0. Указанный там локальный вектор означает, что речь не идёт о непосредственном выполнении кода через произвольную таблицу в интернете: атакующий должен добиться обработки подготовленной модели, после чего пользователь запускает дальнейшее развёртывание.
Для пакета, установленного средствами Python, номер выпуска показывает команда python -m pip show awslabs.dynamodb-mcp-server. Если сервер добавлен как отдельный инструмент через менеджер uv, список установленных инструментов выводит команда uv tool list. Проверку необходимо выполнять под той же учётной записью и в той же программной среде, из которой клиент запускает сервер.
Одного просмотра общей системной установки недостаточно. В настройках клиента может быть указан другой исполняемый файл, отдельное виртуальное окружение или закреплённый номер пакета. Администратору следует сначала найти команду запуска в конфигурации, а затем проверять именно связанное с ней окружение. Если пакет загружается при каждом запуске, номер выпуска нужно искать в аргументах команды или в журнале запуска, а не в перечне постоянно установленных инструментов.
Как имя объекта превращается в исполняемый код

Дефект находится в генераторе приложения на основе комплекта разработки облачных приложений AWS (CDK), а не в механизме хранения записей DynamoDB. Сервер читает файл dynamodb_data_model.json с описанием таблиц и формирует программное представление ресурсов для последующего развёртывания.
Специальные элементы в структурных именах нейтрализовались недостаточно строго. Из-за этого подготовленное имя таблицы, вторичного индекса или атрибута могло перестать быть обычным значением модели и повлиять на создаваемый программный код. При дальнейшем запуске результата вредоносная конструкция способна выполниться на узле развёртывания с правами запустившего процесс пользователя.
Проверять поэтому нужно не содержимое записей базы, а имена объектов в исходной модели. Риск возникает, когда файл поступает из недоверенного источника, меняется после согласования либо проходит через процесс, в котором посторонний участник может управлять структурными именами. Даже если сервер получен из официального репозитория, доверие к самому пакету не подтверждает безопасность переданного ему файла.
Практическое последствие зависит от прав среды развёртывания. Уязвимость сама по себе не подтверждает захват облачной учётной записи, но выполненный локально код получает возможности процесса, который запустил генерацию или созданное приложение. Поэтому до исправления нельзя считать безопасной модель только на основании того, что она успешно разбирается и не вызывает видимой ошибки.
Безопасная последовательность обновления

При обнаружении версии из диапазона 2.0.10–2.1.5 следует остановить генерацию и связанное с ней развёртывание. Установка свежего пакета рядом со старым не решает проблему, если клиент продолжает использовать прежнее окружение или уже работающий процесс с уязвимым кодом.
- Найти в настройках клиента точную команду запуска сервера и определить используемое ею окружение.
- Проверить номер пакета в этом окружении и сохранить результат для контроля после обновления.
- Остановить задания, которые обрабатывают файл модели или разворачивают ранее сгенерированные ресурсы.
- Обновить пакет как минимум до версии 2.1.6 и удалить закрепление уязвимого выпуска из аргументов запуска либо файла зависимостей.
- Полностью завершить старый процесс и перезапустить клиент, чтобы он загрузил исправленный код.
- Повторить проверку тем же способом и убедиться, что запускается версия 2.1.6 или новее.
- Просмотреть исходную модель и изменения в сгенерированных ресурсах до возобновления развёртывания.
Страница пакета версии 2.1.6 датирует его публикацию 14 августа 2026 года и показывает наличие более нового выпуска 2.1.7. Версия 2.1.6 является нижней безопасной границей именно для этой уязвимости, а не рекомендацией навсегда закрепить зависимость на данном выпуске.
После обновления важно сравнить вывод проверки с конфигурацией клиента. Если команда показывает новую версию, но клиент обращается к другому пути или окружению, риск сохраняется. Аналогично перезапуск только окна приложения может быть недостаточен, если серверный процесс продолжает работать отдельно; необходимо убедиться, что старый процесс действительно завершён.
Временная мера до установки исправления
Если немедленное обновление невозможно, временная мера состоит в ручном просмотре файла модели до каждого запуска генератора. Нужно проверить происхождение файла, убедиться, что он не менялся после согласования, и последовательно сопоставить все имена таблиц, вторичных индексов и атрибутов с утверждённой схемой.
Просмотр только верхнего уровня документа недостаточен: опасное значение может находиться среди описаний индексов или атрибутов. Любое неожиданное имя, конструкция со служебными знаками или расхождение с согласованной моделью должно остановить обработку до выяснения происхождения изменения. Файл из непроверенного источника нельзя передавать уязвимому генератору даже в тестовой среде, если она имеет доступ к рабочим учётным данным или другим значимым ресурсам.
Ручная проверка лишь уменьшает вероятность передачи подготовленного имени и не устраняет дефект в программе. Она зависит от внимательности проверяющего и не даёт той же гарантии, что установка исправленного выпуска. Подтверждённым способом закрыть CVE-2026-85654 остаётся переход с версий 2.0.10–2.1.5 на 2.1.6 или более новый выпуск с обязательной проверкой фактически запущенного экземпляра.
Читайте также:
Подпишитесь на рассылку
Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.