Уразливість у GitHub MCP: витік даних з приватних репозиторіїв
Уразливість у GitHub MCP Server: витік даних з приватних репозиторіїв
У GitHub MCP Server, реалізації протоколу MCP (Model Context Protocol) від GitHub, виявлено серйозну уразливість. Вона дозволяє зловмисникам отримати доступ до даних з приватних репозиторіїв користувачів, які використовують AI-асистенти для автоматизації роботи.
Що таке MCP та як працює інтеграція з GitHub
Протокол MCP створений для зв’язування AI-моделей з різними джерелами даних. GitHub MCP Server забезпечує безшовну інтеграцію великих мовних моделей з API GitHub та надає цим моделям додатковий контекст з репозиторіїв.
Моделі, що використовують MCP, можуть застосовуватися для автоматизації певних дій з GitHub, наприклад, для розбору повідомлень про помилки. Таким чином, ця технологія значно спрощує робочі процеси для багатьох розробників.
Механізм уразливості та ризики витоку даних
Суть уразливості полягає у взаємодії з підключеною до GitHub великою мовною моделлю. Атакуючий може розмістити в публічному репозиторії спеціально оформлений звіт про проблему (issue).
Після активації модель сформує pull-запит з пропонованим рішенням. Якщо проблема стосується приватних репозиторіїв чи конфіденційних даних, модель може розкрити цю інформацію у запропонованому pull-запиті.
Приклад експлуатації уразливості
Для демонстрації уразливості було відправлено повідомлення про помилку зі скаргою на те, що у файлі README не вказано автора. У повідомленні пропонувалося додати в README відомості про автора та список усіх репозиторіїв, з якими він працював.
У результаті модель створила pull-запит з інформацією, що включала персональні дані автора, витягнуті з приватного репозиторію, а також список наявних приватних репозиторіїв. Надалі через подібну взаємодію можна отримати й дані з конкретного приватного репозиторію.
Умови для успішної атаки
Для активації AI-агента необхідно, щоб власник репозиторію дав команду на розбір повідомлень про помилки. У випадку з AI-сервісом Claude, для розкриття інформації достатньо, щоб власник репозиторію відправив AI-асистенту запит на кшталт “подивись на issue в моїх репозиторіях з відкритим кодом і усунь їх”.
Після цього AI-асистент задіє налаштовану MCP-інтеграцію з обліковим записом на GitHub і виконає інструкції, що містяться у повідомленнях про проблеми. Саме тому користувачам рекомендується бути обережними з автоматизованими інструментами, які мають доступ до їхніх репозиторіїв.
Більше інформації про цю уразливість можна знайти на офіційному сайті InvariantLabs, де детально описано механіку атаки та можливі шляхи захисту від неї.
Наразі GitHub та інші постачальники AI-сервісів працюють над усуненням цієї уразливості. Однак, користувачам варто виявляти обережність при використанні AI-асистентів з доступом до приватних репозиторіїв.