# DNS rebinding в SDK для TypeScript и Python

> 2 декабря 2025 вышли бюллетени CVE-2025-66414 и CVE-2025-66416: в TypeScript SDK и Python SDK защита от подмены DNS для локальных серверов HTTP не была включена по умолчанию.

Страница: https://mcpdoc.ru/blog/sdk-dns-rebinding-advisories/
Указатель сайта: https://mcpdoc.ru/llms.txt

- **Рубрика:** Безопасность

- **Дата события:** 2 декабря 2025

- **Опубликовано на сайте:** 4 октября 2026

- **Источник:** [github.com](https://github.com/advisories/GHSA-w48q-cv73-mx4w)

2 декабря 2025 в репозиториях официальных TypeScript SDK и Python SDK опубликованы два бюллетеня безопасности об одной и той же ошибке: защита от подмены DNS (DNS rebinding) не была включена по умолчанию у серверов, запущенных на `localhost`. В тот же день обе записи появились в общей базе GitHub Advisory. Уровень опасности обеих - высокий.

## Что изменилось

Два бюллетеня, по одному на SDK:

- `CVE-2025-66414`, `GHSA-w48q-cv73-mx4w` - TypeScript SDK, пакет `@modelcontextprotocol/sdk` в npm. Затронутые версии: `< 1.24.0`. Исправленная версия: `1.24.0`. Уровень опасности: высокий.
- `CVE-2025-66416`, `GHSA-9h52-p55h-vw2f` - Python SDK, пакет `mcp` в PyPI. Затронутые версии: `< 1.23.0`. Исправленная версия: `1.23.0`. Уровень опасности: высокий.

Обе записи отнесены к классу `CWE-1188`.

Последствие в обоих бюллетенях описано одинаково: вредоносный сайт мог с помощью подмены DNS обойти правило одного источника, отправить запросы локальному серверу MCP и от имени пользователя вызвать инструменты или получить ресурсы этого сервера.

Что изменили исправления:

- TypeScript SDK: у серверов, созданных через `createMcpExpressApp()`, защита теперь включена по умолчанию при привязке к `localhost`. Тем, кто собирает приложение Express сам, бюллетень советует подключить промежуточный обработчик `hostHeaderValidation()`.
- Python SDK: у серверов, созданных через `FastMCP()`, защита теперь включена по умолчанию, когда параметр `host` равен `127.0.0.1` или `localhost`.

Это ошибка в программах, а не в протоколе MCP: речь о настройках по умолчанию в двух SDK.

## Кого это касается

Условия в бюллетенях названы точно.

- TypeScript: сервер HTTP запущен на `localhost` без проверки подлинности, использует `StreamableHTTPServerTransport` или `SSEServerTransport` и не включил `enableDnsRebindingProtection`.
- Python: сервер использует `FastMCP` с транспортом Streamable HTTP или SSE и не настроил `TransportSecuritySettings`.

Оба бюллетеня отдельно говорят: серверы с транспортом stdio не затронуты.

Что проверить:

1. Версию SDK: `@modelcontextprotocol/sdk` должна быть не ниже 1.24.0, `mcp` - не ниже 1.23.0.
2. Запускаете ли вы сервер по HTTP на своей машине и есть ли у него проверка подлинности.
3. Если приложение Express собрано вручную - подключён ли `hostHeaderValidation()`.

## Как это выглядит сейчас

Требования к серверу, которые закрывают обращение с чужой веб-страницы, собраны на странице [«Защита сервера»](https://mcpdoc.ru/security/server/), а подробности о проверке `Origin` - на странице [«Транспорты»](https://mcpdoc.ru/protocol/transports/). Обе записи есть в таблице на странице [«Уязвимости и инциденты»](https://mcpdoc.ru/security/incidents/).

## Источники

- [GitHub Advisory Database: GHSA-w48q-cv73-mx4w, CVE-2025-66414, TypeScript SDK](https://github.com/advisories/GHSA-w48q-cv73-mx4w)
- [GitHub Advisory Database: GHSA-9h52-p55h-vw2f, CVE-2025-66416, Python SDK](https://github.com/advisories/GHSA-9h52-p55h-vw2f)
