Фейковый рекрутер отправлял разработчикам архив с вредоносной настройкой Git
Разработчику написали в LinkedIn от имени компании Cryptic Heaven и прислали ZIP-архив с репозиторием Git. Внутри была ловушка, которая запускала стороннюю программу уже при обычном git status, без install.sh и сборки проекта.
Главное в цифрах
- Срабатывание: обычный git status или переключение ветки, без install.sh и сборки
- Домен в архиве для удаленного кода: vercelscript.vercel.app
Исследователь получил сообщение в LinkedIn от рекрутера компании Cryptic Heaven, которая якобы разрабатывает финансовую систему для пользователей криптовалютных кредитных карт. Ему предложили вакансию Smart Contract Developer и ссылку на договор, которая вела на ZIP-архив Contract-2026.zip.
В архиве находились README.md, шаблон договора с незаполненными полями и полноценный каталог .git с историей, ветками и нестандартной локальной конфигурацией. Обычно разработчики получают репозиторий через git clone, а не в виде архива с служебной директорией.
По данным автора исследования, ловушка использует штатные возможности Git. Хук post-checkout запускается после переключения ветки, а параметр core.hooksPath позволяет указать каталог с хуками, отличный от стандартного .git/hooks.
Как работает атака
Вторая часть атаки связана с пользовательским фильтром ltr в .git/config. Clean-фильтр Git обычно нормализует содержимое файлов, и Git применяет его к файлам, описанным в .gitattributes или .git/info/attributes. Звездочка в настройках означает, что фильтр назначается всем подходящим файлам.
Чтобы определить, изменилось ли содержимое файлов, git status может пропускать данные через clean-фильтр. Поэтому обычная команда способна запустить стороннюю программу. Автор проверил это на безопасном тестовом репозитории, заменив фильтр скриптом, который только записывал факт вызова в лог.
Скрипт фильтра использует временные метки и каталог-блокировку, чтобы не запускать несколько копий сразу. После паузы он пытается определить операционную систему, скачивает с удаленного сервера дополнительный код и немедленно его выполняет: через sh для Linux и macOS или через PowerShell для Windows. Адрес сервера в архиве находился на поддомене vercelscript.vercel.app. Вывод и ошибки перенаправлялись в /dev/null, поэтому пользователь мог ничего не заметить.
Что именно делает загружаемый код, по содержимому архива установить нельзя. Это может быть загрузчик следующего этапа, кража данных или другое вредоносное действие.


