CVE-2018-5430

TIBCO JasperReports

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

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

2022-12-29

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

TIBCO JasperReports Server contain a vulnerability which may allow any authenticated user read-only access to the contents of the web application, including key configuration files.

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

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

CVE-2018-5430 представляет собой уязвимость обхода каталогов (Directory Traversal) в компоненте TIBCO JasperReports Server. Проблема заключается в недостаточной проверке путей к файлам, запрашиваемым через веб-интерфейс.

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

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

Основным способом устранения уязвимости является обновление программного обеспечения до версий, в которых данная ошибка была исправлена.

  1. Определите текущую версию JasperReports Server.
  2. Обновите сервер до одной из следующих версий (или более новых):
    • TIBCO JasperReports Server: версии 6.2.4, 6.3.3, 6.4.2
    • TIBCO JasperReports Server Community Edition: версия 6.4.2
    • TIBCO JasperReports Server for AWS: версия 6.4.2

Для обновления выполните следующие шаги (на примере Linux-дистрибутива):

Остановите службу сервера приложений (например, Tomcat):

./ctlscript.sh stop

Создайте резервную копию базы данных репозитория и текущей директории приложения:

pg_dump -U postgres jasperserver > js-db-backup.sql
cp -r /opt/jasperreports-server-vX.X /opt/jasperreports-server-backup

Запустите скрипт обновления из дистрибутива новой версии:

./js-upgrade-seda.sh

Запустите службу:

./ctlscript.sh start

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

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

  1. Ограничьте права доступа для учетных записей пользователей, оставив доступ только доверенному персоналу.
  2. Настройте правила Web Application Firewall (WAF) для блокировки запросов, содержащих последовательности обхода директорий (например, ../, ..\, %2e%2e%2f).
  3. Установите строгие разрешения на уровне файловой системы, чтобы процесс, под которым запущен JasperReports (например, пользователь tomcat), имел доступ только к необходимым для работы директориям.
  4. Проверьте конфигурацию web.xml и убедитесь, что доступ к чувствительным ресурсам ограничен ролями безопасности:
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Restricted Files</web-resource-name>
        <url-pattern>/WEB-INF/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>ROLE_ADMINISTRATOR</role-name>
    </auth-constraint>
</security-constraint>