Zraniteľnosť v Apache Tomcat, ktorá umožňuje vložiť JSP kód a získať súbory webových aplikácií

Výskumníci z čínskej spoločnosti Chaitin Tech identifikovali zraniteľnosť (CVE-2020-1938) v Apache Tomcat, otvorenú implementáciu technológií Java Servlet, JavaServer Pages, Java Expression Language a Java WebSocket. Zraniteľnosti priradili kódové meno Ghostcat a kritickú úroveň nebezpečenstva (9.8 CVSS). Problém umožňuje v predvolenej konfigurácii prostredníctvom zaslania požiadavky na sieťovom porte 8009 prečítať obsah akýchkoľvek súborov z adresára webovej aplikácie, vrátane súborov s nastaveniami a zdrojových textov aplikácie.

Zraniteľnosť tiež umožňuje importovať iné súbory do kódu aplikácie, čo umožňuje vykonávanie kódu na serveri, ak aplikácia povoľuje nahrávanie súborov na server (napríklad útočník môže nahrávať JSP skript pod zámienkou obrázku prostredníctvom formulára na nahrávanie obrázka). Útok môže byť vykonaný pri možnosti zasielania požiadaviek na sieťový port s AJP spracovateľom. Podľa predbežných údajov, v sieti boli zistené je viac ako 1.2 milióna hostiteľov, ktoré prijímajú požiadavky prostredníctvom protokolu AJP.

Zraniteľnosť je prítomná v protokole AJP, a nie je spôsobená chybnou implementáciou. Okrem prijímania pripojení cez HTTP (port 8080) Apache Tomcat predvolene umožňuje prístup k webovej aplikácii cez protokol AJP (Apache Jserv Protocol, port 8009), ktorý predstavuje optimalizovanú binárnu náhradu HTTP pre dosiahnutie vyššej výkonnosti, bežne sa používa pri vytváraní klastrov z Tomcat serverov alebo na zrýchlenie interakcie s Tomcat na reverznej proxie alebo zaťažovacom vyvažovači.

AJP poskytuje štandardnú funkciu na prístup k súborom na serveri, ktorú je možné využiť aj na získanie súborov, ktoré nemajú byť zverejnené. Predpokladá sa, že prístup k AJP je otvorený iba pre dôveryhodné servery, ale v skutočnosti bola v predvolenej konfigurácii Tomcat sprístupnená spracovateľka na všetkých sieťových rozhraní a požiadavky boli prijímané bez autentifikácie. Prístup je možný k akýmkoľvek súborom webovej aplikácie, vrátane obsahu WEB-INF, META-INF a akýchkoľvek iných adresárov, ktoré sú sprístupnené prostredníctvom volania ServletContext.getResourceAsStream(). AJP tiež umožňuje použiť akýkoľvek súbor v dostupných adresároch webovej aplikácie ako skript JSP.

Problém sa prejavuje od doby vydania pred 13 rokmi, vetvy Tomcat 6.x. Okrem samotného Tomcat sa problém týka a vyžaduje ich produkty, ako Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), ako aj samostatné webové aplikácie používajúce Spring Boot. Podobná zraniteľnosť (CVE-2020-1745) je prítomná v webovom serveri Undertow, použitom v aplikačnom serveri Wildfly. V JBoss a Wildfly je protokol AJP predvolene zapnutý iba v súboroch standalone-full-ha.xml, standalone-ha.xml a ha/full-ha v doméne domain.xml. V Spring Boot je podpora AJP predvolene vypnutá. V súčasnosti rôzne skupiny pripravili viac ako desať funkčných príkladov exploitov (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Zraniteľnosť bola odstránená v vydaniach Tomcat 9.0.31, 8.5.51 a 7.0.100 (podpora verzie 6.x bol ukončený). Sledujte nové aktualizácie v distribúciách na týchto stránkach: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Ako obrané opatrenie môžete vypnúť službu Tomcat AJP Connector (pripnúť počúvací socket na localhost alebo zakomentovať riadok s pripojením port = „8009“), ak nie je potrebná, alebo nastaviť autentifikovaný prístup pomocou atribútov „secret“ a „address“, ak sa služba používa na interakciu s inými servermi a proxy založenými na mod_jk a mod_proxy_ajp (mod_cluster autentifikáciu nepodporuje).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster