Apache Tomcati haavatavus, mis võimaldab teil asendada JSP-koodi ja hankida veebirakenduste faile

Hiina ettevõtte Chaitin Tech teadlased avastasid haavatavus (CVE-2020-1938) sisse Apache Tomcat, Java Servleti, JavaServer Pages, Java Expression Language ja Java WebSocketi tehnoloogiate avatud rakendus. Turvaaugule on määratud koodnimi Ghostcat ja kriitiline raskusaste (9.8 CVSS). Probleem võimaldab vaikekonfiguratsioonis, saates võrgupordi 8009 päringu, lugeda veebirakenduse kataloogis olevate failide sisu, sealhulgas seadete ja rakenduse lähtekoodidega faile.

Haavatavus võimaldab importida ka muid faile rakenduse koodi, mis võimaldab koodi käivitamist serveris, kui rakendus lubab faile serverisse üles laadida (näiteks saab ründaja üles laadida pildiks maskeeritud JSP-skripti pildi üleslaadimise vorm). Rünnaku saab läbi viia, kui on võimalik saata päring AJP-käsitlejaga võrguporti. Esialgsetel andmetel internetis leitud rohkem kui 1.2 miljonit hosti, kes võtavad taotlusi vastu AJP-protokolli kaudu.

Haavatavus esineb AJP-protokollis ja ei kutsutud viga rakendamisel. Lisaks HTTP (port 8080) kaudu ühenduste vastuvõtmisele võimaldab Apache Tomcat vaikimisi juurdepääsu veebirakendusele AJP-protokolli kaudu (Apache Jservi protokoll, port 8009), mis on suurema jõudluse jaoks optimeeritud HTTP binaaranaloog, mida kasutatakse tavaliselt Tomcati serverite klastri loomisel või Tomcatiga suhtlemise kiirendamiseks pöördpuhverserveril või koormuse tasakaalustajal.

AJP pakub serveris failidele juurdepääsuks standardset funktsiooni, mida saab kasutada, sealhulgas hankida faile, mis ei kuulu avalikustamisele. AJP peaks olema juurdepääsetav ainult usaldusväärsetele serveritele, kuid tegelikult käivitas Tomcati vaikekonfiguratsioon töötleja kõigil võrguliidestel ja võttis päringuid vastu ilma autentimiseta. Juurdepääs on võimalik mis tahes veebirakenduse failidele, sealhulgas WEB-INF-i, META-INF-i ja muude kataloogide sisule, mis on esitatud ServletContext.getResourceAsStream() kutse kaudu. AJP võimaldab teil kasutada ka JSP-skriptina mis tahes faili veebirakendusele juurdepääsetavates kataloogides.

Probleem on ilmnenud alates Tomcat 13.x filiaalist, mis ilmus 6 aastat tagasi. Lisaks Tomcati probleemile endale mõjutab ja seda kasutavad tooted, nagu Red Hat JBossi veebiserver (JWS), JBoss Enterprise Application Platform (EAP), samuti iseseisvad veebirakendused, mis kasutavad Kevadine saabas. Sarnane haavatavus (CVE-2020-1745) kohal veebiserveris Undertow, mida kasutatakse Wildfly rakendusserveris. JBossis ja Wildflys on AJP vaikimisi lubatud ainult standalone-full-ha.xml, standalone-ha.xml ja ha/full-ha profiilides domeenis domain.xml. Spring Bootis on AJP tugi vaikimisi keelatud. Praegu on erinevad rühmad koostanud üle tosina töönäidet ärakasutamise kohta (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

Tomcati versioonides parandatud haavatavus 9.0.31, 8.5.51 и 7.0.100 (6.x filiaali hooldus lõpetatud). Jaotuskomplektide värskenduste saadavust saate jälgida järgmistel lehtedel: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Lahendusena saate keelata teenuse Tomcat AJP Connector (siduda kuulamispesa kohaliku hostiga või kommenteerida rida Connector port = "8009"), kui seda pole vaja, või seadistage autentitud juurdepääs, kasutades atribuute "salajane" ja "aadress", kui teenust kasutatakse mod_jk ja mod_proxy_ajp alusel muude serverite ja puhverserveritega suhtlemiseks (mod_cluster ei toeta autentimist).

Allikas: opennet.ru

Lisa kommentaar