Уязвимости в Voyager ставят под угрозу безопасность Laravel-приложений

Переводчик Google

Основная информация​

Voyager, популярный PHP-пакет с открытым исходным кодом для управления приложениями Laravel, оказался под угрозой из-за ряда критических уязвимостей. Платформа предоставляет удобный интерфейс администратора и поддерживает множество функций, таких как управление медиа, пользователями и выполнение различных операций.

В рамках регулярного анализа кода через SonarQube Cloud, исследователи обнаружили произвольную уязвимость записи файлов, которая может привести к удаленному выполнению кода (Remote Code Execution, RCE).

Описание уязвимостей​

  1. Произвольная запись файлов (CVE-2024-55417)
    При загрузке файла через /admin/media/upload Voyager использует метод getMimeType() для проверки типа загружаемого контента. Однако этот механизм можно обойти с помощью так называемых полиглот-файлов — файлов, которые одновременно содержат допустимое расширение (например, изображение) и вредоносный код PHP.

    Это позволяет злоумышленникам загружать и выполнять произвольные скрипты на сервере при наличии определённых прав администратора.
  2. XSS-уязвимость (CVE-2024-55416)
    Конечная точка /admin/compass предоставляет возможность выполнения определённых действий, таких как удаление файлов. Если злоумышленник создаёт специально сформированный URL, а пользователь Voyager нажимает на него, можно выполнить произвольный JavaScript-код.
  3. Произвольное удаление и утечка файлов (CVE-2024-55415)
    В компоненте VoyagerCompassController@index отсутствует корректная нормализация пути файлов. Это позволяет злоумышленнику удалять произвольные файлы на сервере или получить их содержимое, манипулируя аутентифицированным пользователем.
1738233226747.webp

Влияние​

  • Удалённое выполнение произвольного кода на сервере
  • Утечка конфиденциальных данных
  • Удаление важных файлов, что может нарушить работу серверов

Реакция разработчиков​

Несмотря на многочисленные попытки исследователей связаться с сопровождающими проект через электронную почту и GitHub, ответа не последовало. По истечении 90-дневного окна раскрытия информации исследователи были вынуждены опубликовать детали публично, чтобы пользователи могли принять меры по защите своих систем.


Рекомендации по защите​

  • Ограничить доступ к административным функциям Voyager
  • Проверить список разрешённых типов MIME и расширений файлов
  • Реализовать защиту от CSRF и XSS
  • Следить за обновлениями пакета и применять возможные патчи

Хронология событий​

  • 2024-09-11: Первое уведомление разработчикам Voyager о проблемах
  • 2024-10-20: Повторное уведомление
  • 2024-11-28: Открытие отчёта о безопасности через GitHub
  • 2025-01-21: Публикация отчёта для общественности

Пользователям Voyager рекомендуется проявлять осторожность и принимать дополнительные меры безопасности до выхода официального патча.

Источник
 
Назад
Сверху Снизу