CVE-2010-1871

Red Hat JBoss Seam 2

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

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

2021-12-10

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

JBoss Seam 2 (jboss-seam2), as used in JBoss Enterprise Application Platform 4.3.0 for Red Hat Linux, allows attackers to perform remote code execution. This vulnerability can only be exploited when the Java Security Manager is not properly configured.

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

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

Уязвимость (CVE-2010-1871) в JBoss Seam 2 позволяет удаленному злоумышленнику выполнить произвольный код на сервере. Для эксплуатации требуется, чтобы Java Security Manager был сконфигурирован неправильно или отключен. Атакующий может отправить специально сформированные HTTP-запросы к приложению, что приведет к десериализации недоверенных данных и выполнению кода.

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

  1. Обновите JBoss Enterprise Application Platform (EAP) и JBoss Seam. Установите исправленные версии пакетов от Red Hat:

    • Для JBoss Enterprise Application Platform 4.3.0:
      • Обновитесь до версии jboss-eap-4.3.0.CP09 или выше.
      • Установите обновление для пакета jboss-seam2 через менеджер пакетов Red Hat (yum).

    ```bash

    Проверьте текущую версию

    rpm -qa | grep -i jboss-seam2

    Обновите пакет (требуются права root)

    yum update jboss-seam2 ```

  2. Проверьте и настройте Java Security Manager. Убедитесь, что Security Manager включен и правильно настроен в конфигурации сервера приложений. Это критически важно для блокировки эксплуатации данной уязвимости.

Временное решение

Если немедленное обновление невозможно, выполните следующие шаги:

  1. Включите и настройте Java Security Manager.

    • Добавьте параметр -Djava.security.manager и политику -Djava.security.policy в скрипт запуска JBoss (например, run.conf или standalone.conf).
    • Строго ограничьте разрешения в файле политики безопасности для приложения.

    ```bash

    Пример добавления в JAVA_OPTS (файл run.conf)

    JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=/path/to/your/security.policy" ```

  2. Ограничьте сетевой доступ.

    • Настройте межсетевой экран (firewall) так, чтобы доступ к портам JBoss (по умолчанию 8080, 8443) был только с доверенных IP-адресов или сегментов сети. ```bash

    Пример для iptables (разрешить только с внутренней сети 192.168.1.0/24)

    iptables -A INPUT -p tcp --dport 8080 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 8080 -j DROP ```

  3. Настройте правила WAF.

    • Разместите Web Application Firewall (например, ModSecurity) перед приложением.
    • Настройте правила для блокировки запросов, содержащих известные шаблоны эксплуатации десериализации в Java (например, с использованием сигнатур на классы org.jboss.seam).