# CamoLeak: GitHub Copilot Chat мог выдать код и секреты из приватных репозиториев

> Исследователь Legit Security показал, что скрытый комментарий в pull request мог заставить GitHub Copilot Chat найти в приватных репозиториях жертвы секреты и исходный код и незаметно передать их злоумышленнику. Исследователи оценили уязвимость в 9.6 по CVSS; GitHub устранил её, полностью отключив отображение изображений в Copilot Chat.

- Канонический HTML: [/incidents/camoleak-github-copilot-chat](https://ai-first.tech/incidents/camoleak-github-copilot-chat)
- Язык: русский
- Редакционный принцип: защитный контекст без вредоносных полезных нагрузок и инструкций обхода.

- Дата: 2025-10-08
- Категория: Внедрение инструкций
- Затронуто: GitHub Copilot Chat, разработчики и организации с приватными репозиториями на GitHub
- Критичность: Критический

## Что произошло

В июне 2025 года Омер Майраз (Omer Mayraz) из Legit Security сообщил о проблеме через программу HackerOne. В доказательстве концепции ему удалось извлечь ключи AWS, токены и описание неопубликованной уязвимости из приватного репозитория. 14 августа 2025 года GitHub закрыл канал утечки, отключив рендеринг изображений в Copilot Chat. Публичное описание под названием CamoLeak вышло 8 октября 2025 года. Сообщений о реальных жертвах нет, речь идёт о продемонстрированной уязвимости.

## Где нарушилась защита

Copilot Chat читает содержимое pull request, включая разметку, которая не отображается в веб-интерфейсе GitHub, и работает с правами пользователя, задавшего вопрос. Скрытый в комментарии текст попадал в контекст модели как инструкция, и ассистент выполнял поиск по приватным репозиториям жертвы. Для вывода данных использовался собственный прокси изображений GitHub (Camo): трафик выглядел как обычная загрузка картинок через доверенную инфраструктуру и не блокировался политикой безопасности контента. Граница доверия нарушалась там, где контент от постороннего автора получал полномочия владельца репозитория.

## Последствия

- В доказательстве концепции извлечены секреты (ключи AWS, токены), фрагменты приватного кода и описание неопубликованной уязвимости
- Атакующему достаточно было открыть pull request в репозиторий, с которым работает жертва
- Оценка исследователей по CVSS 9.6; подтверждённых случаев эксплуатации нет

## Реакция

GitHub 14 августа 2025 года отключил отображение изображений в Copilot Chat и заблокировал использование Camo для утечки содержимого; публичное раскрытие состоялось 8 октября 2025 года.

## Уроки для бизнеса

- Ассистент программиста действует с правами разработчика, поэтому любой текст из чужого pull request или issue становится вектором атаки на приватный код
- Доверенная инфраструктура самой платформы может стать каналом утечки, который не видят стандартные фильтры
- Секреты в репозиториях остаются главным призом для таких атак, даже если репозиторий приватный

## Меры защиты

- Не хранить секреты в коде и репозиториях, использовать хранилища секретов и автоматическое сканирование
- Ограничить доступ AI-ассистента только к репозиториям, нужным для текущей задачи
- Отключать или фильтровать внешние изображения и ссылки в ответах ассистентов
- Внимательно проверять pull request от внешних участников, включая скрытую разметку

Связанные карточки угроз: A02, A41, A09, A38, A35

## Первоисточники

- [CamoLeak: Critical GitHub Copilot Vulnerability Leaks Private Source Code](https://www.legitsecurity.com/blog/camoleak-critical-github-copilot-vulnerability-leaks-private-source-code) — Legit Security
- [GitHub patches Copilot Chat flaw that could leak secrets](https://www.theregister.com/2025/10/09/github_copilot_chat_vulnerability/) — The Register
