Уязвимость Environment Manipulation via Query String
В Laravel была устранена уязвимость (CVE-2024–52301) с уровнем опасности 8.7. Позволяющая изменить среду выполнения приложения (например, переключиться с production на development) через строку запроса URL. Это было возможно при включённой директиве PHP register_argc_argv. Используя специально сформированный URL, злоумышленник мог изменять настройки среды приложения и получить доступ к конфиденциальным данным, доступным только в режиме отладки.
Пример эксплуатации
Допустим, Laravel обрабатывает URL с параметром argv, например:
http://example.com/?argv[]=--env&argv[]=development
Такой запрос мог бы заставить приложение работать в среде development, если оно использует argv для определения текущей среды.
Версии, подверженные уязвимости
| Версия Laravel | Уязвимые версии |
|---|---|
| < 6.x | До 6.20.45 |
| 7.x | От 7.0.0 до 7.30.7 |
| 8.x | От 8.0.0 до 8.83.28 |
| 9.x | От 9.0.0 до 9.52.17 |
| 10.x | От 10.0.0 до 10.48.23 |
| 11.x | От 11.0.0 до 11.31.0 |
Решение
В новых версиях Laravel аргументы argv больше не учитываются для выбора среды выполнения при работе через веб-сервер (Только через консоль). По этому рекомендуется обновиться или отключить директиву register_argc_argv.
Предыдущая уязвимость в Laravel была найдена 7 декабря 2021 года.