В начале текущего года эксперты китайской компании Chaitin Tech обнаружили опасную уязвимость, затрагивающую все версии Apache Tomcat, выпущенные за последние 13 лет (затронуты ветки 6.x, 7.x, 8.x и 9.x). Уязвимость получила имя
https://www.chaitin.cn/en/ghostcat, набрала 9,8 баллов по шкале оценки уязвимостей CVSS, а также ей были присвоены идентификаторы
http://cve.mitre.org/cgi-bin/cvename...=CVE-2020-1938 и
https://www.cnvd.org.cn/flaw/show/CNVD-2020-10487 (используется в Китае).
Корень проблемы кроется в AJP, то есть бинарном протоколе Apache JServ Protocol, который Apache Tomcat использует для обмена данными с ближайшими веб-серверами Apache HTTPD и другими установками Tomcat. AJP включен по умолчанию на всех серверах Tomcat и прослушивает порт 8009.
Исследователи объясняют, что баг в составе AJP можно использовать для чтения или записи файлов. Например, злоумышленники могут читать файлы конфигурации приложений, похищать пароли и токены API, а также имеют возможность записывать файлы, то есть способны оставить на сервере бэкдор или веб-шелл. Но стоит отметить, что запись файлов при помощи Ghostcat возможна только в том случае, если какое-либо приложение, размещенное на уязвимом сервере, разрешает пользователям загрузку файлов.
В настоящее время уже выпущены патчи для
https://tomcat.apache.org/security-7...Tomcat_7.0.100 ,
https://tomcat.apache.org/security-8..._Tomcat_8.5.51 и
https://tomcat.apache.org/security-9..._Tomcat_9.0.31. А вот исправлений для ветки 6.x ждать не приходится, так как ее поддержка была прекращена еще в 2016 году. Также эксперты Chaitin Tech выпустили обновленную версию своего инструмента
https://github.com/chaitin/xray/releases/tag/0.19.2, при помощи которой можно сканировать сети на наличие уязвимых серверов Tomcat.
По данным поисковика BinaryEdge, в настоящее время в сети можно обнаружить более миллиона серверов Tomcat. Хуже того, эксперты компании
https://www.tenable.com/blog/cve-202...nvd-2020-10487 предупреждают, что на GitHub уже доступны PoC-эксплоиты для свежей уязвимости (
https://github.com/laolisafe/CVE-2020-1938,
https://github.com/xindongzhuaizhuai/CVE-2020-1938,
https://github.com/0nise/CVE-2020-1938,
https://github.com/YDHCUI/CNVD-2020-...Tomcat-Ajp-lfi,
https://github.com/nibiwodong/CNVD-2...Tomcat-ajp-POC), которые начали появляться сразу же после раскрытия информации о проблеме.
Также
https://snyk.io/blog/ghostcat-breach...mcat-versions/, что Ghostcat представляет опасность для приложений, построенных на базе Spring Boot Java, так как те поставляются с предварительно включенным сервером Tomcat. В свою очередь,
https://access.redhat.com/solutions/4851251 напоминает, что Tomcat также поставляется с другими платформами и серверами на основе Java, такими как JBossWeb и JBoss EAP. Red Hat рекомендует отключить AJP в Tomcat, если он не используется, или привязать его к порту локального хоста.