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). Если обновление невозможно, необходимо вручную отредактировать конфигурацию безопасности.
-
Найдите файл конфигурации
web.xmlдля веб-консоли. Обычно он находится по пути:server/<profile>/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml -
Найдите секцию
<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>
- Перезапустите сервер JBoss для применения изменений.
Временные меры
Если вы не можете немедленно изменить конфигурацию приложения или обновить сервер, используйте следующие методы защиты:
-
Ограничение доступа на уровне сетевого экрана (Firewall): Разрешите доступ к портам управления JBoss (по умолчанию 8080, 8443, 9990, 9999) только с доверенных IP-адресов администраторов.
-
Использование Reverse Proxy (Nginx/Apache): Настройте прокси-сервер перед JBoss, который будет блокировать все HTTP-методы, кроме необходимых, или требовать дополнительную авторизацию. Пример для Nginx:
if ($request_method !~ ^(GET|POST)$ ) {
return 405;
}
- Удаление неиспользуемых консолей:
Если веб-консоль не используется для администрирования, удалите соответствующий
.warили.sarархив из директорииdeploy.
rm -rf server/default/deploy/management/console-mgr.sar