Upozorňujeme na závažnou Remote code execution zranitelnost logovacího frameworku Apache Log4j s identifikátorem CVE-2021-44228.
Zranitelnost "Log4Shell" se závažností CVSSv3 9.8 potenciálně postihuje veškeré aplikace, které ji k logování používají a umožňují příjem požadavků skrze libovolný protokol. Zalogováním speciálně vytvořeného požadavku, který útočník na server zašle, dojde kvůli chybě v interpretaci k jeho spuštění, čímž může získat plnou kontrolu nad serverem.
Log4j je nativní součástí produktů Apache, např. Apache Struts, Apache Druid, Apache Flume, Apache Flink, Apache Kafka a dalších. Framework využívají například, ElasticSearch, Logstash a obecně většina aplikací běžících na Javě.
Ke zranitelnosti byl zveřejněn Proof-of-concept a byly již zaznamenány případy skenování a zneužívání. Lze očekávat, že s ohledem na veřejně dostupný kód a nízkou složitost zneužití bude četnost útoků narůstat a zranitelnost může být využita jako vstupní bod například pro ransomware operátory.
Zranitelné produkty
Zranitelné jsou všechny verze Apache log4j od 2.0 do 2.14.1.
Mitigace
Zranitelnost lze mitigovat nastavením parametru `log4j2.formatMsgNoLookups` na `True`, ve verzích 2.0 až 2.14.1. Zranitelnost také opravuje aktualizace 2.16.0 vydaná 13.12.2021, která tento parametr nastavuje na `True` v defaultní konfiguraci a mitiguje zranitelnosti na DoS útok a exfiltraci dat, objevené ve verzi 2.15.0.
Detekce
Zneužití zranitelnosti lze ověřit vyhledáním řetězců `${jndi:ldap://`,`${jndi:rmi://`, `${jndi:ldaps://` v lozích serveru. K vyhledání lze použít například příkaz a YARA pravidlo publikované: https://gist.github.com/Neo23x0/e4c8b03ff8cdf1fa63b7d15db6e3860b
Doporučení
Všem správcům relevantních systémů doporučujeme prověřit, zda jimi provozované aplikace, zejména pokud jsou přístupné z internetu, využívají pro logování Log4j.
Pokud ano, doporučujeme Log4j bezodkladně aktualizovat na verzi 2.15.0-rc2. Pokud není aktualizace z provozních důvodů možná, je doporučeno provést alespoň opatření v podobě spuštění aplikace s parametrem `log4j2.formatMsgNoLookups=True.`
S ohledem na dostupnost PoC a aktivní skenování též doporučujeme servery prověřit metodami uvedenými v sekci Detekce.
Odkazy:
- Security warning: New zero-day in the Log4j Java library is already being exploited | ZDNet
- CVE-2021-44228 - Log4j 2 Vulnerability Analysis - Randori Attack Team
- lunasec/2021-12-09-log4j-zero-day.md at master · lunasec-io/lunasec · GitHub
- Log4j RCE CVE-2021-44228 Exploitation Detection · GitHub
- Log4j – Changes (apache.org)