Ghostcat, de kwetsbaarheid in Tomcat die code kan vervangen

spookkat

Onderzoekers van Chaitin Tech, China vrijgegeven informatie over een nieuwe ontdekking, zoals ze hebben geïdentificeerd een kwetsbaarheid in de populaire servlet-container (Java Servlet, JavaServer Pages, Java Expression Language en Java WebSocket) Apache tomcat (al vermeld als CVE-2020-1938).

Deze kwetsbaarheid ze kregen de codenaam "Ghostcat" toegewezen en een kritiek ernstniveau (9.8 CVSS). Het probleem staat in de standaardconfiguratie toe om een ​​verzoek te verzenden via netwerkpoort 8009 om de inhoud van elk bestand in de webapplicatiemap te lezen, inclusief broncodes van applicaties en configuratiebestanden.

Door de kwetsbaarheid kunnen ook andere bestanden in de toepassingscode worden geïmporteerd, wat toestaat de uitvoering van de code organiseren op de server als de applicatie het uploaden van bestanden naar de server toestaat.

Bijvoorbeeld, of de websitetoepassing gebruikers toestaat bestanden te uploaden, een aanvaller kan aanvallen eerste een bestand met JSP-scriptcode kwaadaardig op de server (het geüploade bestand zelf kan elk type bestand zijn, zoals afbeeldingen, platte tekstbestanden, enz.) en voeg vervolgens het geüploade bestand toe door misbruik te maken van de kwetsbaarheid van Ghostcat, wat uiteindelijk kan resulteren in uitvoering van externe code.

Er wordt ook vermeld dat een aanval kan worden uitgevoerd als het mogelijk is om een ​​verzoek naar een netwerkpoort te sturen met een AJP-driver. Volgens voorlopige gegevens, het netwerk gevonden meer dan 1.2 miljoen hosts die verzoeken accepteren met behulp van het AJP-protocol.

De kwetsbaarheid is aanwezig in het AJP-protocol en het wordt niet veroorzaakt door een implementatiefout.

Naast het accepteren van HTTP-verbindingen (poort 8080) in Apache Tomcat, standaard het is mogelijk om toegang te krijgen naar de webapplicatie met behulp van het AJP-protocol (Apache Jserv-protocol, poort 8009), een binaire analoog van HTTP die is geoptimaliseerd voor hogere prestaties, meestal gebruikt bij het maken van een cluster van Tomcat-servers of om de interactie met Tomcat op een reverse proxy of load balancer te versnellen.

AJP biedt een standaardfunctie om toegang te krijgen tot bestanden op de server, die kan worden gebruikt, inclusief de ontvangst van bestanden die niet onderhevig zijn aan openbaarmaking.

Het is wel verstaan ​​dat toegang tot AJP staat alleen open voor vertrouwde bediendenmaar in feite werd in de standaard Tomcat-configuratie de driver op alle netwerkinterfaces gestart en werden verzoeken zonder authenticatie geaccepteerd.

Toegang is mogelijk tot elk bestand in de webtoepassing, inclusief de inhoud van WEB-INF, META-INF en elke andere directory die wordt geretourneerd via de aanroep ServletContext.getResourceAsStream (). Met AJP kunt u ook elk bestand in mappen gebruiken die beschikbaar zijn voor een webtoepassing als een JSP-script.

Het probleem is duidelijk sinds de Tomcat 6.x-tak 13 jaar geleden werd uitgebracht​ Naast Tomcat zelf, het probleem heeft ook invloed op de producten die het gebruiken, zoals Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), evenals zelfstandige webapplicaties die Spring Boot gebruiken.

ook een vergelijkbare kwetsbaarheid werd gevonden (CVE-2020-1745) op de Undertow-webserver gebruikt in de Wildfly-applicatieserver. Momenteel hebben verschillende groepen meer dan een dozijn werkende voorbeelden van exploits voorbereid.

Apache Tomcat heeft officieel de versies 9.0.31, 8.5.51 en 7.0.100 uitgebracht om deze kwetsbaarheid te corrigeren. Om deze kwetsbaarheid correct te corrigeren, moet u eerst bepalen of de Tomcat AJP Connector-service wordt gebruikt in uw serveromgeving:

  • Als cluster of reverse proxy niet wordt gebruikt, kunt u in principe vaststellen dat AJP niet wordt gebruikt.
  •  Als dit niet het geval is, moet u weten of het cluster of de omgekeerde server communiceert met de Tomcat AJP Connect-service

Dat wordt ook vermeld De updates zijn nu beschikbaar in de verschillende Linux-distributies zoals: Debian, Ubuntu, RHEL, Fedora, SUSE.

Als tijdelijke oplossing kunt u de Tomcat AJP Connector-service uitschakelen (de luisterende socket verbinden met localhost of commentaar geven op de regel met Connector port = »8009 ″), indien niet vereist, of geauthenticeerde toegang configureren.

Als u er meer over wilt weten, kunt u hierover overleggen de volgende link. 


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.