Kwetsberens yn Apache Tomcat wêrmei jo JSP-koade kinne ferfange en webapplikaasjebestannen krije

Undersikers fan it Sineeske bedriuw Chaitin Tech hawwe ûntdutsen kwetsberens (CVE-2020-1938) yn Apache Tomcat, in iepen ymplemintaasje fan Java Servlet, JavaServer Pages, Java Expression Language en Java WebSocket technologyen. De kwetsberens is de koadenamme Ghostcat en in kritysk hurdensnivo (9.8 CVSS) tawiisd. It probleem lit, yn 'e standertkonfiguraasje, troch it ferstjoeren fan in fersyk op netwurkpoarte 8009, de ynhâld fan alle bestannen út 'e webapplikaasjemap te lêzen, ynklusyf bestannen mei ynstellings en applikaasjeboarnekoades.

De kwetsberens makket it ek mooglik om oare bestannen yn 'e applikaasjekoade te ymportearjen, wat it útfieren fan koade op 'e tsjinner mooglik makket as de applikaasje bestannen op 'e tsjinner oplade (bygelyks in oanfaller kin in JSP-skript uploade ferklaaid as in ôfbylding fia in ôfbylding uploadformulier). De oanfal kin útfierd wurde as it mooglik is om in fersyk te stjoeren nei in netwurkhaven mei in AJP-handler. Neffens foarriedige gegevens, online fûn mear as 1.2 miljoen hosts akseptearje oanfragen fia it AJP-protokol.

De kwetsberens bestiet yn it AJP-protokol, en net neamd flater yn útfiering. Neist it akseptearjen fan ferbiningen fia HTTP (poarte 8080), jout Apache Tomcat standert tagong ta in webapplikaasje fia it AJP-protokol (Apache Jserv Protokol, haven 8009), dat is in binêre analoog fan HTTP optimalisearre foar hegere prestaasjes, meastentiids brûkt by it meitsjen fan in kluster fan Tomcat-tsjinners of om ynteraksje mei Tomcat op in reverse proxy of load balancer te rapperjen.

AJP leveret in standertfunksje foar tagong ta bestannen op 'e tsjinner, dy't brûkt wurde kinne, ynklusyf it heljen fan bestannen dy't net ûnderwurpen binne oan iepenbiering. AJP moat allinich tagonklik wêze foar fertroude servers, mar feitlik rûn de standertkonfiguraasje fan Tomcat de handler op alle netwurkynterfaces en akseptearre oanfragen sûnder autentikaasje. Tagong is mooglik foar alle web applikaasje triemmen, ynklusyf de ynhâld fan WEB-INF, META-INF en alle oare mappen levere troch in oprop oan ServletContext.getResourceAsStream (). AJP lit jo ek elk bestân brûke yn mappen tagonklik foar de webapplikaasje as JSP-skript.

It probleem is ferskynde sûnt de Tomcat 13.x-tûke 6 jier lyn frijlitten. Utsein Tomcat sels is in probleem beynfloedet en produkten dy't it brûke, lykas Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), lykas selsstannige webapplikaasjes dy't brûke Spring boot. Fergelykbere kwetsberens (CVE-2020-1745) oanwêzich yn 'e webserver undertown, brûkt yn de Wildfly applikaasje tsjinner. Yn JBoss en Wildfly is AJP standert allinich ynskeakele yn standalone-full-ha.xml, standalone-ha.xml en ha/full-ha profilen yn domain.xml. Yn Spring Boot is AJP-stipe standert útskeakele. Op it stuit hawwe ferskate groepen mear as in tsiental wurkfoarbylden fan eksploaten taret (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Kwetsberens fêst yn Tomcat-releases 9.0.31, 8.5.51 и 7.0.100 (ûnderhâld fan de 6.x branch ophâlden). Jo kinne de beskikberens fan updates yn distribúsjekits folgje op dizze siden: Debian, ubuntu, RHEL, Fedora, SUSE, FreeBSD. As oplossing kinne jo de Tomcat AJP Connector-tsjinst útskeakelje (in harkjende socket bine oan localhost of kommentaar oer de line mei Connector-poarte = "8009") as it net nedich is, of opsetten autentike tagong mei de "geheime" en "adres" attributen, as de tsjinst wurdt brûkt om ynteraksje mei oare tsjinners en proxy's basearre op mod_jk en mod_proxy_ajp (mod_cluster stipet gjin autentikaasje).

Boarne: opennet.ru

Add a comment