В начале текущего года эксперты китайской компании Chaitin Tech обнаружили опасную уязвимость, затрагивающую все версии Apache Tomcat, выпущенные за последние 13 лет (затронуты ветки 6.x, 7.x, 8.x и 9.x). Уязвимость получила имя Ghostcat, набрала 9,8 баллов по шкале оценки уязвимостей CVSS, а также ей были присвоены идентификаторы CVE-2020-1938 и CNVD-2020-10487 (используется в Китае).

Корень проблемы кроется в AJP, то есть бинарном протоколе Apache JServ Protocol, который Apache Tomcat использует для обмена данными с ближайшими веб-серверами Apache HTTPD и другими установками Tomcat. AJP включен по умолчанию на всех серверах Tomcat и прослушивает порт 8009.

Исследователи объясняют, что баг в составе AJP можно использовать для чтения или записи файлов. Например, злоумышленники могут читать файлы конфигурации приложений, похищать пароли и токены API, а также имеют возможность записывать файлы, то есть способны оставить на сервере бэкдор или веб-шелл. Но стоит отметить, что запись файлов при помощи Ghostcat возможна только в том случае, если какое-либо приложение, размещенное на уязвимом сервере, разрешает пользователям загрузку файлов.

В настоящее время уже выпущены патчи для Tomcat 7.x , Tomcat 8.x и Tomcat 9.x. А вот исправлений для ветки 6.x ждать не приходится, так как ее поддержка была прекращена еще в 2016 году. Также эксперты Chaitin Tech выпустили обновленную версию своего инструмента XRAY, при помощи которой можно сканировать сети на наличие уязвимых серверов Tomcat.

По данным поисковика BinaryEdge, в настоящее время в сети можно обнаружить более миллиона серверов Tomcat. Хуже того, эксперты компании Tenable предупреждают, что на GitHub уже доступны PoC-эксплоиты для свежей уязвимости (12345), которые начали появляться сразу же после раскрытия информации о проблеме.

Также сообщается, что Ghostcat представляет опасность для приложений, построенных на базе Spring Boot Java, так как те поставляются с предварительно включенным сервером Tomcat. В свою очередь, Red Hat напоминает, что Tomcat также поставляется с другими платформами и серверами на основе Java, такими как JBossWeb и JBoss EAP. Red Hat рекомендует отключить AJP в Tomcat, если он не используется, или привязать его к порту локального хоста.

1 комментарий

  1. Аватар

    yuraminsk

    02.03.2020 в 22:16

    Если я правильно понял, то AJP должен торчать наружу, а такие сервера ещё пойди найди. AJP нужен только для связки с апачем, следовательно у вас апач всегда в роли диспатчера и на нём висит только http(s), а сам томкат не виден из вне, большинство хостингов тоже по умочанию делают открытым наружу только http(s). В Spring Boot на сколько помню AJP выключен по умолчанию. Так что ну раз руки у вас кривые, то страдайте)

Оставить мнение