Наскоро разкрита уязвимост, наречена „GitLost“, показва как атакуващите могат да използват един-единствен GitHub Issue (проблем), за да подведат новите AI-базирани агентни работни процеси (Agentic Workflows) на GitHub да извлекат и споделят съдържанието на частни хранилища в публичното интернет пространство. За целта не са необходими идентификационни данни, умения за кодиране или системен достъп.

Агентните работни процеси на GitHub свързват GitHub Actions с AI агент, поддържан от Claude или GitHub Copilot, позволявайки на екипите да пишат автоматизация на обикновен Markdown, която се компилира в YAML Actions файлове. Тези агенти могат да четат съобщения за проблеми, да извикват инструменти, да публикуват коментари и да достъпват други хранилища в организацията въз основа на конфигурируеми разрешения, като всичко това се случва без човешки преглед на всяко действие.

Уязвимостта произтича от класически дефект, свързан с непряко инжектиране на подкани (indirect prompt-injection). Уязвимото приложение, идентифицирано от Noma Labs, е било конфигурирано да се задейства при събития от тип issues.assigned, да чете заглавието и съдържанието на проблема, да отговаря чрез инструмент за добавяне на коментари и да работи с права за четене както в публичните, так и в частните хранилища на организацията. Поради факта, че агентът не успява да направи разлика между надеждните системни инструкции и ненадеждното съдържание, предоставено от потребителя, всеки атакуващ може да вгради команди на обикновен английски език в съдържанието на проблема и да накара агента да ги изпълни.

Noma Labs са създали безобидно изглеждащ проблем, имитиращ искане от „вицепрезидент по продажбите“. След като проблемът е бил назначен и е задействал работния процес, агентът е извлякъл съдържанието на README.md файловете от публично хранилище (poc) и от частно хранилище (testlocal), публикувайки ги в публичен коментар, видим за всички. Изследователите откриват също, че добавянето на думата „Additionally“ (В допълнение) към инжектираните подкани заобикаля съществуващите защитни бариери на GitHub.

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

Препоръчителните мерки за защита включват:

  • Никога да не се третира контролирано от потребителя съдържание като надеждна инструкция.
  • Ограничаване на разрешенията на агента до необходимия минимум.
  • Ограничаване на това, което агентите могат да публикуват публично.
  • Изолиране на потребителския вход от контекста на инструкциите.