Команда эмулятора Wii U Cemu предупредила пользователей Linux о компрометации двух сборок версии 2.6 на официальной странице проекта в GitHub. С по вместо штатных Linux-сборок — AppImage и Ubuntu ZIP — распространялись подменённые версии с вредоносной нагрузкой. Пользователи Windows, macOS и сборка в формате Flatpak не затронуты.
Какие файлы и каналы загрузки затронуты
В официальном предупреждении команда называет два подменённых файла, размещавшихся на странице релиза v2.6 в GitHub: AppImage-сборка Cemu-2.6-x86_64.AppImage и архив cemu-2.6-ubuntu-22.04-x64.zip. На момент публикации предупреждения штатные сборки уже восстановлены.
AppImage — формат самодостаточного исполняемого файла для Linux, в который упакованы программа и её зависимости. Запускается без установки в систему, при первом запуске обычно требует выдачи права на исполнение.
В отчёте на GitHub отдельно указано: компрометация затрагивает только Linux-сборки релиза v2.6 на странице проекта. ZIP-архив для Windows, DMG-образ для macOS и git-тег v2.6 (a6fb0a4) остались без изменений. Не затронут также Flatpak-пакет Cemu — он собирается из исходного кода через отдельный репозиторий и не использует бинарные файлы со страницы релизов GitHub.
Под удар попали и сторонние лаунчеры, через которые свежий релиз Cemu загружается напрямую с GitHub. Если такой инструмент скачал и запустил подменённую сборку в указанный период, систему следует считать заражённой.
Как произошёл взлом
По предварительной версии команды Cemu, источником компрометации стал участник проекта: на его машине был запущен заражённый Python-пакет, выкравший GitHub-токен. С этим токеном злоумышленник переопубликовал заражённые версии двух Linux-бинарников в релизе v2.6.
Дополнительные детали приведены в том же отчёте на GitHub: подменённые файлы загрузил аккаунт MangelSpec, не имевший до этого ни одного коммита в репозиторий Cemu. Архив cemu-2.6-ubuntu-22.04-x64.zip был перезалит в 22:55 UTC, число загрузок составило около 1957. AppImage перезалили в 01:41 UTC, число загрузок — примерно 19 897. Оригинальные файлы, загруженные ботом github-actions , были удалены.
Cemu стал очередной мишенью в серии скоординированных атак на цепочку поставок массово используемого открытого ПО, которую отслеживает International Cyber Digest.
Возможности вредоносного кода
По заявлению разработчиков, полные возможности вредоносной нагрузки на момент публикации предупреждения ещё не установлены. В составе кода есть похититель паролей, ориентированный на учётные данные для сервисов разработки и облачных платформ. По предположению команды, такая фокусировка нужна для дальнейшего заражения других проектов через украденные ключи.
Для пользователей в Израиле предусмотрен отдельный сценарий: если по локали и часовому поясу зафиксирована эта страна, то с вероятностью один к шести запускаются громкая сирена и команда rm -rf / — попытка стереть содержимое файловой системы. При таком сценарии файлы напрямую не перезаписываются: восстановление данных возможно, но только если на затронутые накопители в дальнейшем не записывались новые данные. Команда отдельно предупреждает: переустанавливать ОС на тот же диск или форматировать его до попытки восстановления нельзя.
Если же локаль определяется как русская, вредоносная нагрузка не выполняется. На остальных системах вредоносный код пропускается также при первом запуске, поэтому риск ущерба ниже у тех, кто запускал заражённую сборку только один раз.
Признаки возможного заражения
Надёжных индикаторов компрометации команда пока не назвала. В предупреждении приводится список путей и имён файлов, которые может создать вредоносная нагрузка:
- /tmp/.transformers
- /usr/bin/pgmonitor.py
- ~/.local/bin/pgmonitor.py
- /etc/systemd/system/pgsql-monitor.service
- ~/.config/systemd/user/pgsql-monitor.service
- /tmp/kubectl
Отсутствие этих файлов не доказывает, что система чистая. Разработчики рекомендуют считать заражённой любую систему, на которой подменённые сборки запускались в указанные даты, даже если перечисленных артефактов в ней нет.
Среди других рекомендаций — заблокировать на сетевом уровне IP-адрес 83.142.209.194 вне зависимости от подозрения на заражение: команда указывает его как жёстко прописанный в коде адрес, к которому обращается вредоносная нагрузка.
Хеши штатных сборок Cemu 2.6 для проверки файлов
Если есть сомнения в подлинности уже скачанных файлов, в предупреждении опубликованы контрольные суммы штатных Linux-сборок Cemu 2.6:
| Файл | SHA-256 |
|---|---|
| Cemu-2.6-x86_64.AppImage | 0c20c4aeb800bb13d9bab9474ef45a6f8fcde6402cad9b32ac2a1bbd03186313 |
| cemu-2.6-ubuntu-22.04-x64.zip | 5e4592d0dae394fa0614cb8c875eff3f81b23170b349511de318d9caf7215e1b |
Сверить хеш можно стандартной командой:
sha256sum Cemu-2.6-x86_64.AppImage
Несовпадение значения с приведённым в таблице означает, что файл скачан в окно компрометации и должен быть удалён.
Что делать пользователям заражённых сборок
В предупреждении прямо говорится: точный объём ущерба пока неизвестен, и самый безопасный путь — чистая переустановка операционной системы. Минимальный план для тех, кто не готов на переустановку:
- Удалить заражённые бинарные файлы Cemu 2.6.
- Сменить пароли всех учётных записей, использовавшихся на системе.
- Отозвать и перевыпустить GitHub-токены, SSH-ключи, токены облачных провайдеров и любые другие учётные данные, через которые система проходила аутентификацию в сервисах.
- Заблокировать на маршрутизаторе или брандмауэре исходящие соединения с IP 83[.]142[.]209[.]194.
Тем, кто скачал заражённые сборки, но ни разу не запускал AppImage и не распаковывал ZIP-архив, разработчики рекомендуют как минимум удалить файлы и сверить хеши штатных версий перед повторной загрузкой.
Заключение
Подмена шла не через коммит в репозиторий, а через перезалив бинарных файлов в готовом релизе, поэтому компрометацию было трудно заметить при ревью кода. Под удар попали только пользователи Linux, скачавшие AppImage или Ubuntu ZIP с GitHub в недельном окне с 6 по 12 мая.
Практический вывод для пользователей Linux: бинарные сборки с GitHub стоит сверять с хешами из официальных каналов, а для критичных рабочих машин предпочтительнее Flatpak-пакет или сборка из исходного кода. Команда Cemu сообщила, что приняла меры против повторения инцидента.