CVE-2024-38856

Apache OFBiz

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2024-08-27

Официальное описание

Apache OFBiz contains an incorrect authorization vulnerability that could allow remote code execution via a Groovy payload in the context of the OFBiz user process by an unauthenticated attacker.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2024-38856 — это критическая уязвимость (CVSS 9.8), связанная с некорректной проверкой авторизации в Apache OFBiz. Проблема заключается в том, что определенные эндпоинты (например, /ProgramExport), которые должны быть защищены, оказываются доступными без аутентификации при обращении через специфические пути контроллера.

Злоумышленник может отправить специально сформированный POST-запрос, содержащий Groovy-скрипт в параметре groovyProgram. Поскольку приложение выполняет этот код в контексте процесса OFBiz, это приводит к полному удаленному выполнению произвольного кода (RCE) на сервере. Уязвимость затрагивает версии до 18.12.14 включительно.

Как исправить

Основным способом устранения является обновление Apache OFBiz до версии 18.12.15 или выше. В этой версии исправлена логика фильтрации запросов и проверки прав доступа.

  1. Перейдите в корневой каталог установленного приложения:
cd /path/to/apache-ofbiz

  1. Остановите текущий экземпляр приложения:
./gradlew "ofbiz --shutdown"

  1. Сделайте резервную копию базы данных и конфигурационных файлов.

  2. Загрузите актуальную версию (18.12.15+) с официального сайта или обновите исходный код через git:

git pull origin release18.12

  1. Соберите проект и запустите его:
./gradlew cleanAll loadAll
./gradlew ofbiz

Временные меры

Если немедленное обновление невозможно, необходимо ограничить доступ к уязвимым путям на уровне сетевого экрана или обратного прокси-сервера (Nginx/Apache HTTPD).

  1. Настройте блокировку доступа к эндпоинту /webtools/control/ProgramExport для всех внешних IP-адресов.

Пример конфигурации для Nginx:

location /webtools/control/ProgramExport {
    deny all;
    return 403;
}

  1. Проверьте конфигурацию framework/common/webapps/webtools/WEB-INF/controller.xml и убедитесь, что для всех чувствительных операций (view/request) параметр auth="true" настроен корректно.

  2. Ограничьте доступ к административной панели OFBiz, разрешив подключения только из доверенных сегментов сети (VPN/Management VLAN).