Сервер WhatsApp MCP — это сервер протокола модельного контекста (MCP) для WhatsApp, позволяющий Клоду читать и отправлять сообщения WhatsApp. До версии 0.2.1 HTTP API `whatsapp-bridge` прослушивал `127.0.0.1:8080` без аутентификации и проверки заголовка хоста, а конечная точка `/api/send` принимала абсолютный параметр `media_path`, не ограничивая его безопасным каталогом. В совокупности эти проблемы позволяют любому локальному процессу, работающему от того же пользователя, что и мост, отправлять сообщения WhatsApp из парной учетной записи без авторизации; один и тот же вызывающий объект читает произвольные файлы, читаемые пользователем (например, закрытые ключи SSH, данные сеанса браузера, исходный код, точечные файлы) и извлекает их в виде вложений документов WhatsApp; и/или удаленный злоумышленник инициирует те же операции посредством повторной привязки DNS с веб-страницы, которую посещает пользователь, поскольку проверка заголовка хоста не выполняется.
В средах MCP «локальный вызывающий объект» выходит за рамки процессов, явно запущенных пользователем — в качестве эффективного вызывающего объекта могут действовать родственные серверы MCP, расширения IDE и запускаемые инструментами потоки, выполняемые в сеансе пользователя. Эта проблема исправлена в WhatsApp-mcp v0.2.1 и соответствующих образах/артефактах выпуска Docker. Пользователи должны немедленно обновиться.
Исправление вводит аутентификацию токена носителя в HTTP API моста (настраивается через переменную среды, требуется для всех запросов, проверяется сравнением в постоянном времени); проверка списка разрешенных заголовков хостов для предотвращения повторной привязки DNS; и ограничение `media_path` настроенным каталогом с отклонением абсолютных путей за пределами корня и последовательностей обхода путей. Это кардинальное изменение для клиентов API моста. Для пользователей, которые не могут немедленно выполнить обновление: остановите мост или заблокируйте шлейфовый доступ к порту 8080, когда мост активно не используется; избегайте запуска моста вместе с ненадежными серверами MCP, расширениями браузера или другими ненадежными локальными процессами; избегать просмотра ненадежных сайтов во время работы моста (защита от перепривязки DNS); и/или запустите мост под выделенной учетной записью пользователя или в песочнице/контейнере без доступа к конфиденциальным файлам.
Показать оригинальное описание (EN)
WhatsApp MCP Server is a Model Context Protocol (MCP) server for WhatsApp, enabling Claude to read and send WhatsApp messages. Prior to version 0.2.1, the `whatsapp-bridge` HTTP API listens on `127.0.0.1:8080` without authentication and without Host header validation, and the `/api/send` endpoint accepts an absolute `media_path` parameter without confining it to a safe directory. Combined, these issues allow any local process running as the same user as the bridge to send WhatsApp messages from the paired account without authorization; the same caller to read arbitrary files readable by the user (e.g. SSH private keys, browser session data, source code, dotfiles) and exfiltrate them as WhatsApp document attachments; and/or a remote attacker to trigger the same operations via DNS rebinding from a webpage the user visits, since no Host header validation is performed. In MCP environments, "local caller" extends beyond processes the user explicitly launched — sibling MCP servers, IDE extensions, and tool-triggered flows running in the user's session can act as the effective caller. This issue is fixed in whatsapp-mcp v0.2.1 and corresponding Docker images / release artifacts. Users should upgrade immediately. The fix introduces bearer token authentication on the bridge HTTP API (configured via environment variable, required on all requests, validated with constant-time comparison); host header allow-list validation to prevent DNS rebinding; and confinement of `media_path` to a configured directory, with rejection of absolute paths outside the root and path traversal sequences. This is a breaking change for clients of the bridge API. For users who cannot immediately upgrade: Stop the bridge, or block loopback access to port 8080, when the bridge is not actively in use; avoid running the bridge alongside untrusted MCP servers, browser extensions, or other untrusted local processes; avoid browsing untrusted sites while the bridge is running (DNS rebinding mitigation); and/or run the bridge under a dedicated user account or in a sandbox/container with no access to sensitive files.
Характеристики атаки
Последствия
Строка CVSS v3.1