¡¾·ì϶¹«¸æ¡¿Apache Log4j2»Ø¾ø·þÎñ·ì϶£¨CVE-2021-45105£©

°ä²¼¹¦·ò 2021-12-19


0x00 ·ì϶¸ÅÊö

CVE     ID

CVE-2021-45105

ʱ      ¼ä

2021-12-17

Àà      ÐÍ

Dos

µÈ      ¼¶

¸ßΣ

Ô¶³ÌÀûÓÃ

ÊÇ

Ó°ÏìÁìÓò


¹¥»÷¸´ÔÓ¶È

µÍ

¿ÉÓÃÐÔ

¸ß

Óû§½»»¥

ÎÞ

ËùÐèȨÏÞ

ÎÞ

PoC/EXP


ÔÚÒ°ÀûÓÃ


 

0x01 ·ì϶ÏêÇé

image.png

Apache Log4j2ÊÇÒ»¸ö¿ªÔ´µÄJavaÈÕÖ¾¿ò¼Ü£¬ £¬£¬£¬ £¬£¬±»¿í·ºµØÀûÓÃÔÚÖÐÑë¼þ¡¢¿ª·¢¿ò¼ÜÓëWebÀûÓÃÖÓ×£¡£¡£¡£ ¡£¡£¡£

12ÔÂ18ÈÕ£¬ £¬£¬£¬ £¬£¬Apache Log4j¹Ù·½Ôٴΰ䲼°²È«²¼¸æ£¬ £¬£¬£¬ £¬£¬Apache Log4j2×é¼þÖдæÔÚÒ»¸ö»Ø¾ø·þÎñ·ì϶£¨CVE-2021-45105£©£¬ £¬£¬£¬ £¬£¬¸Ã·ì϶µÄCVSSÆÀ·ÖΪ7.5£¬ £¬£¬£¬ £¬£¬Ó°ÏìÁËApache Log4j2 2.0-beta9 µ½2.16.0µÄËùÓа汾£¬ £¬£¬£¬ £¬£¬Ä¿Ç°Apache Log4j¹Ù·½ÒѾ­°ä²¼ÁË2.17.0°æ±¾£¨ºÏÓÃÓÚJava 8»ò¸ü¸ß°æ±¾£©¡£¡£¡£¡£ ¡£¡£¡£

ÓÉÓÚûÓÐÔ¤·ÀÀ´×Ôself-referential ²éÕҵIJ»ÊܽÚÔìµÄµÝ¹é£¬ £¬£¬£¬ £¬£¬µ±ÈÕÖ¾ÅäÖÃʹÓôøÓиߵÍÎIJéÕҵķÇĬÈÏģʽ²¼¾Ö£¨ÀýÈ磬 £¬£¬£¬ £¬£¬$${ctx:loginId}£©Ê±£¬ £¬£¬£¬ £¬£¬½ÚÔìÏ̸߳ߵÍÎÄÓ³Éä (MDC) ÊäÈëÊý¾ÝµÄ¹¥»÷ÕßÄܹ»Ôì×÷Ô̺¬µÝ¹é²éÕҵĶñÒâÊäÈëÊý¾Ý£¬ £¬£¬£¬ £¬£¬µ¼Ö StackOverflowError £¬ £¬£¬£¬ £¬£¬´Ó¶øÖÕÖ¹¹ý³Ì£¬ £¬£¬£¬ £¬£¬Ôì³É»Ø¾ø·þÎñ¡£¡£¡£¡£ ¡£¡£¡£

12ÔÂ17ÈÕ£¬ £¬£¬£¬ £¬£¬8827Ì«Ñô¼¯ÍŰ²È«Ó¦¼±ÏìÓ¦ÖÐÐļà²âµ½Apache Log4j¹Ù·½½«Apache Log4j2»Ø¾ø·þÎñ¹¥»÷·ì϶£¨CVE-2021-45046£©µÄ·ì϶ÀàÐ͸ü¸ÄΪԶ³Ì´úÂëÖ´Ðзì϶£¨RCE£©£¬ £¬£¬£¬ £¬£¬²¢½«ÆäCVSSv3·ÖÊý´Ó3.7¸ü¸ÄΪ9.0¡£¡£¡£¡£ ¡£¡£¡£

ÓÉÓÚApache Log4j 2.15.0Öн¨¸´CVE-2021-44228ÔÚijЩ·ÇĬÈÏÅäÖÃÖÐÊDz»ÆëÈ«µÄ£¬ £¬£¬£¬ £¬£¬µ±ÈÕÖ¾ÅäÖÃʹÓôøÓиߵÍÎIJéÎʵķÇĬÈÏģʽ²¼¾Ö£¨ÀýÈ磬 £¬£¬£¬ £¬£¬$${ctx:loginId}£©Ê±£¬ £¬£¬£¬ £¬£¬Äܹ»Ê¹ÓÃJNDI²éÎÊģʽÊäÈë¶ñÒâÊý¾Ý£¬ £¬£¬£¬ £¬£¬µ¼ÖÂÌØ¶¨»·¾³ÏµÄÐÅϢй¶ºÍÔ¶³Ì´úÂëÖ´ÐÓ×¢ÒÔ¼°ËùÓл·¾³Öеı¾µØ´úÂëÖ´ÐÓ×£¡£¡£¡£ ¡£¡£¡£

 

·ì϶ӰÏìÁìÓò

CVE-2021-4104£ºApache Log4j 1.2

CVE-2021-44228£ºApache Log4j 2.0-beta9 - 2.12.1 ¡¢Apache Log4j 2.13.0 - 2.15.0-rc1

CVE-2021-45046£ºApache Log4j 2.0-beta9 - 2.12.1¡¢Apache Log4j 2.13.0-2.15.0

CVE-2021-45105£ºApache Log4j 2.0-beta9 - 2.16.0

 

0x02 ´ëÖý¨Òé

1.ͨÓý¨¸´¹æ»®

ÒÑÉý¼¶µ½ Log4j 2.15.0 ºÍ2.16.0°æ±¾µÄÓû§½¨ÒéÉý¼¶µ½ Log4j 2.17.0 ÒÔÔ¤·ÀÕë¶ÔCVE-2021-44228 ¡¢CVE-2021-45046ºÍCVE-2021-45105·ì϶µÄ¹¥»÷ ¡£¡£¡£¡£ ¡£¡£¡£

CVE-2021-4104£º

Apache Log4j 1.2ÖдæÔÚRCE·ì϶£¨CVE-2021-4104£¬ £¬£¬£¬ £¬£¬½öÅäÖÃΪʹÓÃJMSAppenderʱ´æÔÚ£¬ £¬£¬£¬ £¬£¬·ÇĬÈÏ£©£¬ £¬£¬£¬ £¬£¬½¨ÒéÓйØÓû§Éý¼¶µ½Log4j 2µÄ×îа汾¡£¡£¡£¡£ ¡£¡£¡£

»º½â´ëÊ©£º

l  ×¢½â»òɾ³ý Log4j ÅäÖÃÖÐµÄ JMSAppender¡£¡£¡£¡£ ¡£¡£¡£

l  ʹÓô˺ÅÁî´Ólog4j jar°üÖÐɾ³ý JMSAppender ÀàÎļþ£º

l  zip -q -d log4j-*.jar org/apache/log4j/net/JMSAppender.class

²Î¿¼Á´½Ó£º

http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3C1a5a0193-71c4-0613-ca92-f50f801543d9@apache.org%3E

 

CVE-2021-44228£º

Log4j 1.x£º²»ÊÜCVE-2021-44228·ì϶ӰÏì¡£¡£¡£¡£ ¡£¡£¡£

Log4j 2.x£º

l  ÊÜÓ°ÏìÓû§Ó¦Éý¼¶µ½Apache Log4j 2.15.0-rc2¼°ÒÔÉϰ汾£¬ £¬£¬£¬ £¬£¬½¨ÒéÉý¼¶µ½ 2.16.0 °æ±¾£¨Java 8»ò¸ü¸ß°æ±¾£©¡£¡£¡£¡£ ¡£¡£¡£

l  ʹÓÃJava 7µÄÓû§Ó¦Éý¼¶µ½Apache Log4j 2.12.2°æ±¾¡£¡£¡£¡£ ¡£¡£¡£

l  ɾ³ý JndiLookup Àࣺzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

²Î¿¼Á´½Ó£º

https://logging.apache.org/log4j/2.x/index.html

 

CVE-2021-45046£º

Log4j 1.x£º²»ÊÜCVE-2021-45046·ì϶ӰÏì¡£¡£¡£¡£ ¡£¡£¡£

l  Log4j 2.x£º

l  Java 8»ò¸ü¸ß°æ±¾Ó¦Éý¼¶µ½ Apache Log4j 2.16.0 °æ±¾¡£¡£¡£¡£ ¡£¡£¡£

l  ʹÓÃJava 7 µÄÓû§Ó¦Éý¼¶µ½Apache Log4j 2.12.2°æ±¾¡£¡£¡£¡£ ¡£¡£¡£

l  ɾ³ý JndiLookup Àࣺ zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

²Î¿¼Á´½Ó£º

http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3C13e07d4e-ceb6-e510-be98-7d2ee8fa0a85@apache.org%3E

 

CVE-2021-45105£º

Log4j 1.x£º²»ÊÜCVE-2021-45105·ì϶ӰÏì¡£¡£¡£¡£ ¡£¡£¡£

Log4j 2.x£ºJava 8»ò¸ü¸ß°æ±¾Óû§½¨ÒéÉý¼¶µ½ 2.17.0 °æ¡£¡£¡£¡£ ¡£¡£¡£

»º½â´ëÊ©£º

l  ÔÚÈÕÖ¾ÅäÖõÄPatternLayoutÖУ¬ £¬£¬£¬ £¬£¬ÓÃÏ̸߳ߵÍÎÄÓ³Éäģʽ£¨%X£¬ £¬£¬£¬ £¬£¬%mdc»ò%mdc£©´úÌæ¸ßµÍÎIJéÕÒ£¬ £¬£¬£¬ £¬£¬Èç${ctx:loginId}»ò$${ctx:loginId}¡£¡£¡£¡£ ¡£¡£¡£

l  ²»È»£¬ £¬£¬£¬ £¬£¬ÔÚÅäÖÃÖУ¬ £¬£¬£¬ £¬£¬É¾³ý¶Ô¸ßµÍÎIJéÕÒµÄÒýÓ㬠£¬£¬£¬ £¬£¬Èç ${ctx£ºloginId} »ò $${ctx£ºloginId}£¬ £¬£¬£¬ £¬£¬ËüÃÇÔ´×ÔÀûÓ÷¨Ê½±í²¿µÄÔ´£¬ £¬£¬£¬ £¬£¬Èç HTTP Í·»òÓû§ÊäÈë¡£¡£¡£¡£ ¡£¡£¡£

ÏÂÔØÁ´½Ó£º

https://logging.apache.org/log4j/2.x/download.html

×¢£ºÖ»ÓÐlog4j-core JARÎļþÊÜCVE-2021-44228¡¢CVE-2021-45046ºÍCVE-2021-45105·ì϶µÄÓ°Ïì¡£¡£¡£¡£ ¡£¡£¡£Ö»Ê¹ÓÃlog4j-api JARÎļþ¶ø²»Ê¹ÓÃlog4j-core JARÎļþµÄÀûÓ÷¨Ê½²»»áÊܵ½Ó°Ïì¡£¡£¡£¡£ ¡£¡£¡£

 

0x03 ²Î¿¼Á´½Ó

https://github.com/apache/logging-log4j2

https://logging.apache.org/log4j/2.x/security.html#CVE-2021-44228

https://logging.apache.org/log4j/2.x/security.html

 

0x04 ¸üа汾

°æ±¾

ÈÕÆÚ

Åú¸ÄÄÚÈÝ

V1.0

2021-12-19

³õ´Î°ä²¼

 

0x05 ¹ØÓÚ8827Ì«Ñô¼¯ÍÅ


8827Ì«Ñô¼¯Íżò½é

8827Ì«Ñô¼¯ÍŹ«Ë¾³ÉÁ¢ÓÚ1996Ä꣬ £¬£¬£¬ £¬£¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐÓ×°åÕýʽ¹ÒÅÆÉÏÊУ¬ £¬£¬£¬ £¬£¬ÊǹúÄÚ¼«¾ßʵÁ¦µÄ¡¢Õ¼ÓÐÆëÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂ簲ȫ²úÆ·¡¢¿ÉÐŰ²È«ÖÎÀíÆ½Ì¨¡¢°²È«·þÎñÓë½â¾ö¹æ»®µÄ×ÛºÏÌṩÉÌ¡£¡£¡£¡£ ¡£¡£¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬ £¬£¬£¬ £¬£¬ÔÚÈ«¹ú¸÷Ê¡¡¢ÊÓ×¢×ÔÖÎÇøÉèÓзÖÖ§»ú¹¹£¬ £¬£¬£¬ £¬£¬Õ¼Óи²¸ÇÈ«¹úµÄÇþ·ϵͳºÍ¼¼ÊõÖ§³ÖÖÐÐÄ£¬ £¬£¬£¬ £¬£¬²¢ÔÚ±±¾©¡¢ÉϺ£¡¢³É¶¼¡¢ÕÑͨ¡¢³¤É³¡¢¾£ÃÅµÈ¶àµØÉèÓÐÑз¢ÖÐÐÄ¡£¡£¡£¡£ ¡£¡£¡£

¶àÄêÀ´£¬ £¬£¬£¬ £¬£¬8827Ì«Ñô¼¯ÍÅÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ£¬ £¬£¬£¬ £¬£¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦£¬ £¬£¬£¬ £¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£¡£¡£¡£ ¡£¡£¡£

 

¹ØÓÚ8827Ì«Ñô¼¯ÍÅ

8827Ì«Ñô¼¯ÍŰ²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÖØÒªÕë¶Ô³ÁÒª°²È«·ì϶µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвµý±¨ºÍ°²È«»ã±¨¡£¡£¡£¡£ ¡£¡£¡£

¹Ø×¢ÒÔϹ«¼ÒºÅ£¬ £¬£¬£¬ £¬£¬»ñȡȫÇò×îа²È«×ÊѶ£º

image.png