Недавно созданный аккаунт GitHub попытался внедрить вредоносный код для кражи учетных данных в программное обеспечение кошелька Vizor от Chainapsis и кошелька Zcash от Zingo Labs через шесть запросов на слияние, поданных 9 ноября поздно вечером и 10 ноября рано утром по восточному времени.
Записи GitHub показывают, что четыре запроса Vizor были закрыты без объединения, в то время как запросы в zingo-common и zingolib остались открытыми и необъединенными во вторник утром по восточному времени. Не подтверждено, создавал ли какой-либо сопровождающий вредоносную зависимость или раскрыл учетные данные.
Опасность не зависит от слияния. Rust-пакет, или крейт, lwd-uri-util помещает свой сборщик учетных данных в build.rs, который Cargo запускает перед сборкой пакета. Он также может выполняться во время cargo check или анализа rust-analyzer в редакторе: последний по умолчанию включает скрипты сборки. Разработчик, проверяющий незалитую ветку, может поэтому запустить сборщик локально.
Исследовательская группа OpenSourceMalware задокументировала кампанию. База данных уведомлений GitHub также классифицирует версии 0.1.0–0.1.7 крейта как вредоносное ПО, без исправленной версии.
Просить рецензентов ИИ игнорировать секретные загрузки
Аккаунт sapho11 был создан примерно за полчаса до его первых запросов. Первоначальное предложение для выпуска под Windows якобы предназначалось для добавления диагностики сбоев подписи, но оригинальное изменение копировало переменные среды, связанные с подписью, учетные данные Git, закрытые SSH-ключи и другие файлы в загрузку на внешний сервер.
Автоматический обзор Codex отметил загрузку закрытого ключа для подписи обновлений и предупредил, что это может позволить создавать поддельные каналы обновлений. Автор впоследствии удалил сбор учетных данных из этого предложения до его закрытия.
Затем аккаунт предложил изменения в AGENTS.md — файл с инструкциями для проекта, предназначенных для ИИ-кодирующих агентов. Предложенный текст описывал сбор значений Signing-variable как «целенаправленный и ожидаемый» и просил автоматизированных и человеческих рецензентов не отмечать загрузки, следующие его предполагаемой конвенции, как утечку учетных данных. Публичная ветка PR Vizor подтверждает, что Codex был настроен на автоматический просмотр запросов на слияние.
Вор, который действует до кошелька
Поздний предложение Vizor и два запроса Zingo ввели lwd-uri-util в качестве вспомогательного инструмента для нормализации адресов кошелек-сервер. OpenSourceMalware обнаружил, что изменения Zingo использовали знаки конца строки CRLF в стиле Windows, из-за чего небольшие добавления зависимостей выглядели как полные перезаписи файлов.
В источнике версии 0.1.7 скрипт сборки считывает переменные среды и доступные файлы учетных данных Git, GitHub CLI, AWS, Cargo и npm. Он также ищет зашифрованные файлы хранилища Keplr MCP и пытается получить выбранные секреты из ключевого хранилища macOS, после чего записывает собранные данные в JSON-файл и пытается отправить их методом POST на webhook.site.
Скрипт подавляет загрузки в средах, похожих на сканеры, но сбор и создание локальных файлов происходят до этой проверки. Его параметр «без метрик» останавливает только загрузку.
Индекс реестра crates.io по-прежнему помечал все восемь версий как не отозванные во вторник утром по восточному времени, а аккаунт на GitHub оставался общедоступным. OpenSourceMalware призвал всех, кто собирал ветку, сменить учетные данные и проверить сгенерированный файл lwd_uri_build_context.json, чтобы выяснить, какие данные были собраны.




