Microsoft уничтожает приватность в GitHub. Частные репозитории теперь открыты всем желающим
В GitHub найдена уязвимость, которая позволяет получить любой файл из приватного репозитория против воли его владельца. Владеющая GitHub Microsoft пока не решила проблему, хотя доподлинно известно, где она скрывается – в протоколе GitHub MCP Server.
От частного к общему
Сервис GitHub оказался неспособен обеспечить достойную защиту приватным (закрытым) репозиториям, владельцы которых не хотят, чтобы содержащиеся в них файлы стали достоянием общественности. Под угрозой распространения информации находятся не только частные пользователи, но и компании, хранящие код своих проектов на GitHub.
Как пишет портал Dev Class, проблема скрывается протоколе GitHub MCP Server, (Model Context Protocol), который используется для подключения ИИ-моделей к различным источникам информации. В нем содержится уязвимость, эксплуатация которой открывает доступ фактически к любому файлу из любого приватного хранилища.
«Дыру» в протоколе выявила группа исследователей из швейцарской компании Invariant Labs. В настоящее время GitHub, как и все встроенные в него технологии, является собственностью корпорации Microsoft.
Как все работает
GitHub MCP Server обеспечивает ИИ-моделям доступ к информации из репозиториев. По мнению специалистов Invariant Labs, проблема кроется даже не столько в коде протокола, сколько в его архитектуре. Утечек можно избежать, если разработчики будут тщательно проверять и одобрять действия ИИ-агентов. Однако исследователи подозревают, что пользователи могут выбрать политику подтверждения «всегда разрешать», чтобы упростить процесс пользования репозиториями.
Основа сценария использования уязвимости заключается в том, атакуемый владелец приватного репозитория также может иметь и открытое хранилище. В этом случае злоумышленник может разместить в этом публичном репозитории отчет о проблеме (issue), касающейся репозитория частного. Тут важно, чтобы владелец открытого хранилища активировал в нем автоматизацию на основе искусственного интеллекта.
Если автоматизация включена, после размещения отчета о проблеме нейросеть создаст запрос на внесение изменений в код (pull request), в котором будет предложение решение по устранению описанной мошенником проблемы. А поскольку запрос изначально касался частного репозитория, то ИИ-модель раскроет всю информацию о нем в pull request.
Никаких трудностей
Нашедшие брешь в протоколе GitHub специалисты Invariant Labs несколько раз проверили ее в действии, прежде чем выложить информацию о ней в интернете. Так, они направили в один из публичных репозиториев уведомление о проблеме, заключавшейся в отсутствии в файле Readme указания автора проекта. В качестве решения они предложил вписать в этот файл не только имя автора, но и список всех его репозиториев.
ИИ-модель отреагировала на это так, как и задумывали исследователи – она создала pull request, в котором выложила информацию об авторе из его приватного репозитория. Список его закрытых хранилищ тоже присутствовал в созданном ИИ запросе на исправление.

Исследователи отметили, что это первый шаг в получении хранящейся в частных хранилищах информации. Зная их название, можно через аналогичную процедуру с описанием проблемы добраться до информации в каждом из них.
К моменту выхода материала Microsoft не комментировала столь значительную «дыру» в ее сервисе. Сроки ее исправления известны не были, как и количество пострадавших от ее эксплуатации пользователей GitHub.