В реализации протокола MCP (Model Context Protocol) от GitHub, известной как GitHub MCP Server, обнаружена уязвимость. Об этом сообщили в блоге Invariantlabs. Уязвимость позволяет извлекать данные из приватных репозиториев пользователей, использующих AI-ассистенты для автоматизации работы со своими репозиториями.
MCP предназначен для связывания AI-моделей с различными источниками данных. GitHub MCP Server обеспечивает интеграцию больших языковых моделей (LLM) с API GitHub, предоставляя этим моделям контекст, извлечённый из репозиториев. Такие модели могут использоваться для автоматизации действий на GitHub, например, анализа сообщений об ошибках (issues).
Суть уязвимости заключается в том, что, взаимодействуя с LLM, подключённой к GitHub через MCP, злоумышленник может получить конфиденциальные данные пользователя, привязавшего AI-агента к своей учётной записи. Атакующий размещает в публичном репозитории, использующем LLM-автоматизацию, специально оформленное сообщение об ошибке. Активированная модель формирует pull-запрос с предлагаемым решением. Если проблема касается приватных репозиториев или конфиденциальных данных, модель может раскрыть эту информацию в pull-запросе.
В качестве демонстрационного примера был использован публичный репозиторий ukend0464/pacman. Исследователи разместили сообщение об ошибке с жалобой на то, что в файле README не указан автор. В качестве решения в сообщении было предложено добавить в README сведения об авторе и список всех репозиториев, с которыми работал автор:
Следующим шагом, автор репозитория попросил ИИ-агента Claude 4 Opus решить все проблемы в репозитории:
В итоге модель создала pull-запрос с информацией, включающей персональную информацию об авторе, такую как местоположение, информацию о зарплате и планах переехать в Южную Америку, извлечённую из приватного репозитория, а также список имеющихся приватных репозиториев:
Несмотря на то, что эксперименты были сосредоточены на Claude Desktop, уязвимость не является специфичной для какого-либо конкретного агента или клиента MCP. Она затрагивает любого агента, который использует GitHub MCP Server, независимо от базовой модели или реализации.
Также специалисты отмечают, что это не недостаток в самом коде GitHub MCP, а скорее фундаментальная архитектурная проблема, которая должна быть решена на уровне агентской системы. Это означает, что GitHub в одиночку не может устранить эту уязвимость только с помощью патчей на стороне сервера.
Источник новости: habr.com