Компрометация в поддерживаемом сообществом проекте Laravel Lang, по данным Socket, привела к попаданию RCE-бэкдоров в несколько пакетов, включая старые версии laravel-lang/http-statuses. Socket пишет, что активность охватывает сотни релизов и может затрагивать более 700 версий.
Важная граница: эти пакеты не входят в официальный фреймворк Laravel. Это сторонние пакеты локализации, которые используют Laravel-приложения. Инцидент от этого не становится мелким — он просто меняет место, где командам нужно искать проблему.
Если была установлена скомпрометированная версия пакета, вредоносный код мог запускаться автоматически через autoloader Composer при обычном выполнении PHP-приложения. Под риском оказываются серверы приложений, машины разработчиков, CI-раннеры и облачные учетные данные.
Что, по данным Socket, произошло#
В отчете Socket описана скоординированная активность с тегами в репозиториях организации Laravel Lang на GitHub. Новые опубликованные теги появлялись быстрой серией 22 и 23 мая 2026 года, многие — с разницей всего в несколько секунд.
Такой паттерн заметили в линейках версий 12.x, 13.x, 14.x и 15.x, а также в нескольких репозиториях Laravel Lang. Socket отдельно упоминает Laravel-Lang/http-statuses и анализ composer/laravel-lang/lang@14.3.7.
Время публикаций важно. Одну вредоносную версию еще можно объяснить неудачным релизом, украденным токеном или ошибкой мейнтейнера. Быстрая публикация множества исторических тегов в нескольких репозиториях указывает на более широкий доступ: к учетным данным уровня организации, репозиторной автоматизации или релизной инфраструктуре. Socket не выдает это за окончательную атрибуцию, но такой рисунок релизов не похож на обычное сопровождение пакетов.
Aikido Security также публично сообщила о компрометации, помогая предупредить сообщества Laravel и PHP. На момент публикации Socket расследование еще продолжалось.
Почему Composer autoload усиливает риск#
Описанный бэкдор связан с PHP-файлом, зарегистрированным в конфигурации Composer для автоматической загрузки. В пакетах Composer файлы, перечисленные в autoload-конфигурации, могут выполняться при запуске autoloader Composer.
В этом и опасность. Разработчику не нужно вручную вызывать подозрительную функцию. Приложению не нужно направлять трафик на специальный endpoint. Если пакет установлен и используется autoloader, вредоносный код может выполниться во время обычной работы.
Socket сообщает, что malware динамически собирает hostname командного сервера во время выполнения, используя коды символов. Это простой прием обхода статического поиска строк. Затем код обращается к https://flipboxstudio[.]info/payload, отключает проверку TLS-сертификата и использует поддельный Mozilla User-Agent, чтобы повысить шанс успешной загрузки.
Загруженный payload записывается в скрытый временный путь внутри sys_get_temp_dir()/.laravel_locale/. Выполнение зависит от платформы. Socket описывает фоновый запуск на Unix-подобных системах и совместимый с Windows путь, так что второй этап актуален для Linux, macOS и Windows.
Loader также создает маркер для конкретного хоста с MD5-хэшем, полученным из локальных характеристик системы. Похоже, это нужно, чтобы payload срабатывал один раз на машину. Однократное выполнение снижает шум и усложняет расследование: отсутствие повторной активности не доказывает, что хост был чистым.
Второй этап охотится за секретами, а не только за серверами#
Socket описывает payload второго этапа как кроссплатформенный PHP-стилер информации. По поведению это шире, чем простой webshell.
Payload запускает несколько сборщиков, нацеленных на учетные данные и операционные секреты. По данным Socket, он сканирует файлы, базы данных и переменные окружения через большие словари регулярных выражений для поиска секретов вроде AWS keys, GitHub tokens, Stripe keys, Slack и Discord tokens, JWTs и private keys.
Главный риск по радиусу поражения — нацеленность на облака и CI/CD. Socket сообщает о сборщиках для cloud metadata endpoints, включая EC2 instance metadata, а также локальных конфигураций Azure, Google Cloud, DigitalOcean, Heroku, Netlify и Vercel. Кроме того, malware ищет Kubernetes service account tokens, Helm registry configuration, Vault tokens и CI-системы, включая Jenkins, GitLab Runners, GitHub Actions, CircleCI, TravisCI и ArgoCD.
Это напрямую ложится на современные цепочки доставки. Скомпрометированный пакет локализации на ноутбуке разработчика может превратиться в украденный доступ к GitHub. Скомпрометированный build runner — в облачный доступ. Скомпрометированный сервер приложения — в кражу IAM role.
Socket также пишет, что payload ищет данные кошельков и хранилища браузерных расширений, связанных с crypto wallets, такими как MetaMask, Phantom и Trust Wallet. Это не значит, что на каждом затронутом хосте были такие активы. Но показывает, что стилер написан для сбора любых чувствительных данных, которые удастся найти, а не только Laravel-специфичной информации.
Что проверить прямо сейчас#
Сначала рассматривайте это как инцидент с зависимостями и возможной утечкой учетных данных, а не как уязвимость фреймворка Laravel.
Проверьте, используют ли ваши проекты пакеты Laravel Lang из затронутой организации, особенно laravel-lang/http-statuses и laravel-lang/lang. Смотрите composer.lock, а не только composer.json: lockfile фиксирует то, что фактически было установлено.
Практические проверки:
- Проверьте недавние установки и обновления Composer примерно 22–23 мая 2026 года UTC.
- Сверьте установленные версии пакетов с advisories от Socket, Aikido, мейнтейнеров Laravel Lang и метаданными Packagist по мере появления обновлений.
- Поищите на хостах временный путь с паттерном
.laravel_localeв системной temp-директории. - Проверьте исходящий трафик и DNS-активность, связанную с
flipboxstudio[.]info. - Ротируйте секреты, которые могли быть доступны с затронутых машин разработчиков, CI-раннеров, build servers и application hosts.
- Особое внимание уделите учетным данным GitHub, GitLab, cloud IAM, CI/CD, Vault, Kubernetes, deployment и payment providers.
Не ограничивайте проверку production-серверами. Composer-пакеты часто сначала ставят на рабочие станции разработчиков и CI-раннеры. Именно там обычно лежат самые полезные токены.
Если вы нашли признаки выполнения, исходите из того, что локальные переменные окружения и читаемые конфигурационные файлы могли быть раскрыты. Ротацию секретов нужно сочетать с просмотром логов: cloud audit logs, использование токенов у Git-провайдера, история CI jobs, активность публикации пакетов и необычные deployments.
Чего не стоит утверждать слишком широко#
Исходные материалы подтверждают серьезную supply-chain компрометацию, затронувшую пакеты Laravel Lang. Они не дают оснований говорить, что официальный фреймворк Laravel был скомпрометирован.
Они также не доказывают, что все исторические теги были установлены пользователями, что каждая установка успешно выполнила второй этап или что на каждой затронутой машине утекли секреты. Это вопросы расследования.
Самая безопасная рабочая гипотеза уже достаточно серьезна: если была установлена скомпрометированная версия и запускался autoloader Composer, хост нужно считать потенциально раскрытым. Этого достаточно, чтобы проверить зависимости, осмотреть хосты и ротировать учетные данные на системах, которые соприкасались с затронутыми пакетами.
Урок не новый, но этот случай делает его предельно конкретным. Небольшой сторонний пакет может оказаться настолько близко к старту приложения, что его компрометация превращается в выполнение кода. В PHP-экосистемах, построенных вокруг Composer autoloading, целостность релиза — это целостность runtime.