CVE-2010-1428

Red Hat JBoss

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

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

2022-05-25

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

Unauthenticated access to the JBoss Application Server Web Console (/web-console) is blocked by default. However, it was found that this block was incomplete, and only blocked GET and POST HTTP verbs. A remote attacker could use this flaw to gain access to sensitive information.

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

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

Уязвимость CVE-2010-1428 связана с недостаточной конфигурацией ограничений доступа в веб-консоли JBoss Application Server (/web-console). По умолчанию доступ к консоли должен быть ограничен аутентификацией, однако в файле конфигурации web.xml фильтрация была настроена только для HTTP-методов GET и POST.

Злоумышленник может обойти механизм аутентификации, используя другие HTTP-методы (например, HEAD или PUT), которые не были явно запрещены или ограничены. Это позволяет неавторизованному пользователю получить доступ к административному интерфейсу и конфиденциальной информации о системе.

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

Основным способом устранения является обновление JBoss Application Server до версий, где данная ошибка исправлена (JBoss AS 5.1.0 и выше, либо соответствующие патчи для EAP). Если обновление невозможно, необходимо вручную отредактировать конфигурацию безопасности.

  1. Найдите файл конфигурации web.xml для веб-консоли. Обычно он находится по пути: server/<profile>/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml

  2. Найдите секцию <security-constraint> и удалите из неё теги <http-method>, чтобы ограничения применялись ко всем типам HTTP-запросов без исключения.

Пример исправленного блока в web.xml:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>HtmlAdaptor</web-resource-name>
        <description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX Console</description>
        <url-pattern>/*</url-pattern>
        <!-- Удалены теги <http-method>GET</http-method> и <http-method>POST</http-method> -->
    </web-resource-collection>
    <auth-constraint>
        <role-name>JBossAdmin</role-name>
    </auth-constraint>
</security-constraint>

  1. Перезапустите сервер JBoss для применения изменений.

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

Если вы не можете немедленно изменить конфигурацию приложения или обновить сервер, используйте следующие методы защиты:

  1. Ограничение доступа на уровне сетевого экрана (Firewall): Разрешите доступ к портам управления JBoss (по умолчанию 8080, 8443, 9990, 9999) только с доверенных IP-адресов администраторов.

  2. Использование Reverse Proxy (Nginx/Apache): Настройте прокси-сервер перед JBoss, который будет блокировать все HTTP-методы, кроме необходимых, или требовать дополнительную авторизацию. Пример для Nginx:

if ($request_method !~ ^(GET|POST)$ ) {
    return 405;
}

  1. Удаление неиспользуемых консолей: Если веб-консоль не используется для администрирования, удалите соответствующий .war или .sar архив из директории deploy.
rm -rf server/default/deploy/management/console-mgr.sar