← На главную

GitLost: public issue вытаскивает данные из приватных репозиториев

08.07.2026 05:25 · hackernews

Специалисты Noma Labs нашли критическую уязвимость в новых GitHub Agentic Workflows. Они назвали её GitLost. Это классическая indirect prompt injection: любой может вытащить данные из приватных репозиториев организации, просто создав issue в её публичном репозитории.

Вот как это работает. GitHub Agentic Workflows — это связка GitHub Actions и AI-агента на базе Claude или GitHub Copilot. Рабочий процесс описывается на простом Markdown, а агент сам читает issues, вызывает инструменты и отвечает. Проблема в том, что агент не различает, где инструкции системы, а где — данные от пользователя. Атакуемый workflow, найденный Noma Labs, срабатывал при назначении issue, читал его заголовок и тело, отвечал комментарием и имел доступ на чтение к другим репозиториям организации, включая приватные.

Для атаки не нужно ни кода, ни доступа, ни учётных данных. Достаточно открыть issue в публичном репозитории и дождаться. Noma Labs создали issue, который выглядел как безобидная просьба от вице-президента по продажам. После того как автоматизация GitHub назначила issue, workflow заставил агента прочитать файлы README.md из публичного (poc) и приватного (testlocal) репозиториев — и опубликовал их как публичный комментарий к issue. Всё это мог прочитать любой желающий.

GitHub установил защитные ограничения против такого сценария, но их удалось обойти. Исследователи выяснили, что добавление ключевого слова "Additionally" заставляло модель переформулировать ответ вместо отказа, и guardrails просто не срабатывали. В PoC утекло содержимое README.md из трёх репозиториев: двух публичных и одного приватного.

GitLost — идеальная иллюстрация фундаментальной проблемы безопасности агентных AI-систем. Контекстное окно агента — это его поверхность атаки. Любой контент, который читает агент (issues, pull requests, комментарии, файлы), может быть превращён в инструкцию. Для агентных систем prompt injection стал тем же, чем SQL injection был для веб-приложений: системной уязвимостью, требующей системных защит.

Noma Labs советуют: не доверять пользовательскому контенту как инструкциям для AI-агента, давать агенту минимальные права (особенно опасен доступ к чужим репозиториям), ограничивать публичные ответы на содержимое issue и изолировать ввод пользователя от инструкционного контекста. Уязвимость раскрыли ответственно, с ведома GitHub.

Читать оригинал →