Безопасность веб-приложений снова оказалась под угрозой. Исследователи в области кибербезопасности выявили опасную уязвимость в популярном PHP-фреймворке Laravel, которая позволяет злоумышленникам получать полный контроль над системами через компрометацию ключа APP_KEY. Уязвимость связана с автоматической десериализацией данных в Laravel и наличием так называемых "цепочек гаджетов" (gadget chains), которые могут быть использованы для удаленного выполнения произвольного кода (RCE).
Подробности критической уязвимости
APP_KEY в Laravel - это 32-байтовый симметричный ключ шифрования, критически важный для многих функций фреймворка, включая защиту данных, управление сессиями и генерацию токенов сброса паролей. Проблема возникает, когда этот ключ оказывается в открытом доступе (например, в репозиториях GitHub или конфигурационных файлах на серверах). Если злоумышленник получает APP_KEY, он может использовать метод "decrypt()" в Laravel, который автоматически десериализует расшифрованные данные без должной проверки. Это открывает путь для эксплуатации известных уязвимостей десериализации в PHP.
Эксперты отмечают, что фреймворк содержит множество документированных "цепочек гаджетов", позволяющих выполнять произвольные команды на сервере. Инструменты вроде phpggc (PHP Generic Gadget Chains) содержат более 20 различных векторов атак для версий Laravel от 5.1 до 11.34.2+, упрощая эксплуатацию для злоумышленников.
Специалисты Synacktiv при поддержке GitGuardian провели масштабное исследование, в ходе которого обнаружили более 650 000 активных инстансов Laravel в открытых сетях. С помощью инструментов поиска уязвимостей и анализа GitHub им удалось собрать тысячи открытых APP_KEY. В результате проверки было подтверждено, что более 400 приложений уязвимы к атакам RCE.
Особую тревогу вызывает то, что разработчики продолжают допускать грубые ошибки в защите данных. С 2018 года в открытых репозиториях GitHub было обнаружено около 28 000 пар APP_KEY и APP_URL, причем 10% из них оставались действительными. На момент исследования 120 приложений могли быть атакованы мгновенно.
Большинство утечек (63%) связаны с файлами ".env", которые часто содержат не только APP_KEY, но и другие конфиденциальные данные: учетные записи баз данных, токены облачных сервисов, платежных систем и API-ключи. Это многократно увеличивает потенциальный ущерб, так как злоумышленники могут получить доступ не только к самому приложению, но и к связанным сервисам.
Компания GitGuardian уже внедрила механизмы автоматического обнаружения утечек APP_KEY в своей платформе. С июня 2025 года выявлено более 10 000 уникальных ключей, из которых 1300 относятся к реальным рабочим проектам. В 4 случаях исследователям удалось подтвердить возможность удаленного выполнения кода в продакшн-среде.
Эта ситуация подчеркивает, насколько важно соблюдать базовые принципы защиты данных: никогда не хранить ключи и конфиденциальную информацию в открытых репозиториях, использовать инструменты мониторинга утечек и регулярно обновлять фреймворки и зависимости. Разработчикам Laravel рекомендуется немедленно проверить свои приложения на наличие уязвимостей, отозвать и перегенерировать все потенциально скомпрометированные ключи, а также ограничить доступ к критически важным файлам конфигурации.
Эксперты прогнозируют рост атак на Laravel-приложения в ближайшие месяцы, особенно с учетом того, что уязвимость легко эксплуатируется даже неопытными хакерами. Владельцам сайтов и сервисов рекомендуется принять срочные меры - в противном случае последствия могут быть катастрофическими, включая утечки данных, финансовые потери и репутационный ущерб.
Ссылки
- https://blog.gitguardian.com/exploiting-public-app_key-leaks/
- https://nvd.nist.gov/vuln/detail/cve-2024-55555
- https://www.synacktiv.com/advisories/invoiceninja-unauthenticated-remote-command-execution-when-appkey-known