Публичен проблем (issue) в GitHub може да подведе автономните агенти (GitHub Agentic Workflows) да разкрият съдържанието на частните хранилища на дадена организация, показват изследователи от Noma Security.

Атакуващият трябва единствено да отвори нормално изглеждащ проблем в публично хранилище, без да притежава откраднати акаунти и без да има достъп до самата организация. Ако организацията е дала на агента права за четене на своите хранилища (включително частните), проблемът може да го насочи да извлече поверително съдържание и да го публикува в публичен коментар.

Noma нарича тази техника GitLost. Мишената е GitHub Agentic Workflows – функция, която в момента е в публична тестова версия (public preview) от февруари. Вместо да се пишат скриптове за автоматизация, инструкциите се подават на AI агент на обикновен английски език в Markdown файл. Агентът чете проблеми и заявки за сливане (pull requests), стартира инструменти и отговаря сам.

Той може да бъде захранван от GitHub Copilot, Claude на Anthropic, Google Gemini или OpenAI Codex. Работните процеси са само за четене по подразбиране, но дадена организация може да предостави на агента токен с права за четене в хранилищата си, за да му осигури по-широк контекст, включително и от частните проекти. Точно тази конфигурация се атакува от GitLost.

Слабостта е добре известна: непряко инжектиране на инструкции (indirect prompt injection). Един AI агент не може надеждно да различи инструкциите от своя собственик от тези, скрити в съдържанието, което чете. Така че, ако атакуващият запише тези инструкции в публичен проблем, агентът може просто да ги изпълни.

В демонстрацията на Noma зловредният проблем е бил маскиран като рутинна заявка от вицепрезидент по продажбите след среща с клиент. Засегнатият работен процес е бил настроен да се активира при присвояване на проблем, да го прочете и да отговори с коментар, като същевременно е имал достъп за четене до другите хранилища на организацията. След като автоматизацията присвоила проблема, агентът извлякъл README файла на частно хранилище и го поставил в публичен коментар.

GitHub са изградили защитни стени срещу това. В документацията си компанията предупреждава, че „AI агентите могат да бъдат манипулирани чрез инжектиране на инструкции, зловредно съдържание в хранилища или компрометирани инструменти“. Продуктът се доставя с изолирана среда (sandboxing), токени само за четене по подразбиране, изчистване на входните данни и фаза за откриване на заплахи, която сканира предложения резултат, преди да бъде публикуван. В теста на Noma обаче промяната на една-единствена дума се оказала достатъчна за заобикаляне на защитата – добавянето на „Additionally“ пред зловредната инструкция накарало модела да я третира като последваща задача, а не като нещо, което трябва да откаже.

Това, което отличава GitLost, е контролът на атакуващия. Докато по-ранните примери за инжектиране на инструкции бяха насочени главно към манипулиране на това, което агентът казва, GitLost манипулира това, което агентът прави с правата си. Агентът в случая е легитимен участник с права за четене в инфраструктурата на организацията, който не се нуждае от достъп до сървъри или откраднати данни. Атакуващият просто трябва да отвори публичен проблем.

Ситуацията съвпада с термина „смъртоносна триада“ (lethal trifecta) на разработчика Саймън Уилисън: агент, който има достъп до частни данни, приема ненадеждно външно съдържание и има начин да изпраща данни навън. Проблемът не е просто бъг за пачване, а структурно следствие от предоставянето на постоянни права на AI агенти, докато четат текст, достъпен за външни лица.

GitLost е поредната от серия подобни атаки. Наскоро уязвимост в Claude Code GitHub Action позволи чрез един зловреден проблем да се извлекат тайни ключове и да се придобият права за писане. RoguePilot на Orca Security пък накара Copilot да разкрие привилегирован токен. Проблемите от този тип датират поне от май 2025 г., когато Invariant Labs показаха подобно изтичане през pull request, наричайки го архитектурен дефект без лесно решение от страна на сървъра.

Проучването Comment and Control показа подобни пробиви при Claude Code, Gemini CLI и GitHub Copilot. Излагането на риск от GitLost е ограничено до организации, които са активирали тестовата версия на агентите, дали са им достъп до частни хранилища и са им позволили да публикуват в публичното пространство.