Vulnerabilnost u Apache Tomcatu koja omogućava umetanje JSP koda i pristup datotekama web aplikacija

Istraživači iz kineske kompanije Chaitin Tech otkrili su ranljivost (CVE-2020-1938) u Apache Tomcat, otvorena implementacija tehnologija Java Servlet, JavaServer Pages, Java Expression Language i Java WebSocket. Ova ranjivost nosi naziv Ghostcat i ima kritičnu opasnost (9.8 CVSS). Problem omogućava, u zadanoj konfiguraciji, da se slanjem zahteva na mrežnu portu 8009 pročita sadržaj bilo koje datoteke iz direktorijuma web aplikacije, uključujući datoteke s podešavanjima i izvorne kodove aplikacije.

Ranjivost takođe omogućava uvoz drugih datoteka u kod aplikacije, što može omogućiti izvršavanje koda na serveru, ako aplikacija dozvoljava učitavanje datoteka na server (na primer, napadač može učitati JSP skript pod krinkom slike putem forme za učitavanje slika). Napad može biti izvršen ukoliko postoji mogućnost slanja zahteva na mrežni port sa AJP obradnikom. Preliminarne informacije pokazuju da je u mreži pronađeno više od 1.2 miliona hostova koji primaju zahteve putem AJP protokola.

Ranjivost se nalazi u AJP protokolu, a nije uzrokovana greškom u implementaciji. Pored prijema konekcija putem HTTP (port 8080), Apache Tomcat po zadanoj konfiguraciji omogućava pristup web aplikacijama putem AJP protokola (Apache Jserv Protocol, port 8009), koji predstavlja optimizovanu binarnu varijantu HTTP za postizanje veće performanse, obično korišćenu prilikom kreiranja klastera Tomcat servera ili za ubrzavanje komunikacije sa Tomcat-om na obratnom proksiju ili balansirajućem opterećenju.

AJP pruža ugrađenu funkciju za pristup datotekama na serveru, koja se može koristiti i za pristup datotekama koje nisu namenjene razotkrivanju. Pretpostavlja se da je pristup AJP-u otvoren samo za poverene servere, ali u praksi je u zadnjoj konfiguraciji Tomcat omogućeno pokretanje obradnika na svim mrežnim interfejsima, a zahtevi su primani bez autentifikacije. Pristup je moguć do bilo koje datoteke web aplikacije, uključujući sadržaj WEB-INF, META-INF i bilo kojih drugih direktorijuma koji se javljuju putem poziva ServletContext.getResourceAsStream(). AJP takođe omogućava korišćenje bilo koje datoteke u dostupnim direktorijumima web aplikacije kao JSP skript.

Težava se pojavi že od izdaje verzije Tomcat 6.x pred 13 leti. Poleg samega Tomcata težava zadeva tudi izdelke, ki temeljijo nanj, kot sta Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), ter samostojne spletne aplikacije, ki uporabljajo Spring Boot. Podobna ranljivost (CVE-2020-1745) je na voljo je v spletni strežnik Undertow, ki se uporablja v strežniku aplikacij Wildfly. V JBoss in Wildfly je protokol AJP privzeto vključen le v konfiguracijah standalone-full-ha.xml, standalone-ha.xml in ha/full-ha v domain.xml. V Spring Boot je podpora za AJP privzeto izklopljena. V trenutku so različne skupine pripravile več kot deset delovnih primerov izkoriščanja (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Ranljivost je odpravljena v izdajah Tomcat 9.0.31, 8.5.51 in 7.0.100 (vzdrževanje verzije 6.x prekinut). Spremljanje pojavljanja posodobitev v distribucijah je mogoče na teh straneh: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Kot obvodno zaščitno ukrepanje lahko izklopite storitev Tomcat AJP Connector (priključite poslušalni soket na localhost ali pa komentirate vrstico s Connector port = «8009»), če to ni potrebno, ali nastavijo omogočite avtorizacijo dostopa s pomočjo atributov «secret» in «address», če se storitev uporablja za interakcijo z drugimi strežniki in proxyji na osnovi mod_jk in mod_proxy_ajp (mod_cluster ne podpira avtorizacije).

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster