¡¾Â©¶´Í¨¸æ¡¿Apache Log4j2¾Ü¾ø·þÎñ©¶´£¨CVE-2021-45046£©

Ðû²¼Ê±¼ä 2021-12-16


0x00 ©¶´¸ÅÊö

CVE     ID

CVE-2021-45046

ʱ      ¼ä

2021-12-14

Àà      ÐÍ

Dos

µÈ      ¼¶

ÖÐΣ

Ô¶³ÌÀûÓÃ

ÊÇ

Ó°Ï췶Χ


¹¥»÷ÅÓ´ó¶È

¸ß

¿ÉÓÃÐÔ

µÍ

Óû§½»»¥

 ÎÞ

ËùÐèȨÏÞ

ÎÞ

PoC/EXP


ÔÚÒ°ÀûÓÃ


 

0x01 ©¶´ÏêÇé

image.png

Apache Log4j2ÊÇÒ»¸ö¿ªÔ´µÄJavaÈÕÖ¾¿ò¼Ü £¬±»¹ã·ºµØÓ¦ÓÃÔÚÖмä¼þ¡¢¿ª·¢¿ò¼ÜÓëWebÓ¦ÓÃÖС£

²¿ÃÅʱ¼äÏß

11ÔÂ24ÈÕ£º°¢ÀïÔÆÄþ¾²ÍŶÓÏòApache¹Ù·½³ÂËßÁËApache  Log4j2Ô¶³Ì´úÂëÖ´ÐЩ¶´CVE-2021-44228£»

12ÔÂ7ÈÕ£ºApache Log4j2¹Ù·½Ðû²¼log4j2-2.15.0-rc1²¢µÚÒ»´ÎÐÞ¸´CVE-2021-44228©¶´£»

12ÔÂ9ÈÕ£º¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐļà²âµ½Apache Log4j2 Ô¶³Ì´úÂëÖ´ÐЩ¶´CVE-2021-44228£¨CVSSÆÀ·Ö10.0£© £¬¸÷²úÎïÏß¿ªÕ¹Ó¦¼±ÏìÓ¦´¦Öá£

12ÔÂ14ÈÕ£º¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐļà²âµ½Apache Log4j 1.2Ô¶³Ì´úÂëÖ´ÐЩ¶´CVE-2021-4104£¨CVSSÆÀ·Ö6.6£©¡£

12ÔÂ15ÈÕ£º¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐļà²âµ½Apache Log4j2¾Ü¾ø·þÎñ©¶´CVE-2021-45046£¨CVSSÆÀ·Ö3.7£©¡£

 

Apache Log4j2¹Ù·½ÐÞ¸´·½°¸

12ÔÂ7ÈÕ£ºApache Log4j2¹Ù·½Ðû²¼log4j2-2.15.0-rc1²¢µÚÒ»´ÎÐÞ¸´CVE-2021-44228£»

12ÔÂ10ÈÕ£ºlog4j2-2.15.0-rc1´æÔÚBypass £¬Apache Log4j2¹Ù·½Ðû²¼log4j2-2.15.0-rc2ÐÞ¸´bypass©¶´¡£

 12ÔÂ11ÈÕ£ºApache Log4j2¹Ù·½Ðû²¼ÁË2.15.0 °æ±¾ £¬ÒÔÐÞ¸´CVE-2021-44228¡£ËäÈ» 2.15.0 °æ±¾½â¾öÁËMessage Lookups¹¦Ð§ºÍJNDI ·ÃÎÊ·½Ê½µÄÎÊÌâ £¬µ« Log4jÍŶÓÈÏΪĬÈÏÆôÓà JNDI ´æÔÚÄþ¾²·çÏÕ £¬ÇÒ2.15.0°æ±¾´æÔÚCVE-2021-45046©¶´¡£

12ÔÂ13ÈÕ£ºApache Log4j2¹Ù·½Ðû²¼ÁËLog4j 2.16.0°æ±¾£¨Java 8»ò¸ü¸ß°æ±¾£© £¬¸Ã°æ±¾É¾³ýÁËMessage Lookups¹¦Ð§²¢Ä¬ÈϽûÓÃJNDI¹¦Ð§ £¬²¢´Ó¸Ã°æ±¾¿ªÊ¼Ä¬ÈϽûÓÃJNDI¹¦Ð§ £¬µ«¿ÉÒÔͨ¹ý½«log4j2.enableJndiÉèÖÃΪ true ÒÔÆôÓà JNDI¡£´ËÍâ £¬Log4jÏÖÔÚ½«Ð­ÒéĬÈÏÏÞÖÆÎª½öjava¡¢ldapºÍldaps £¬²¢½«ldapЭÒéÏÞÖÆÎªÖ»ÄÜ·ÃÎÊJavaԭʼ¹¤¾ß¡£µ±ÌïÖ÷»úÒÔÍâµÄÖ÷»úÐèÒª±»Ã÷È·ÔÊÐí¡£

12ÔÂ15ÈÕ£ºApache Log4j2¹Ù·½Ðû²¼ÁËApache Log4j 2.12.2°æ±¾ £¬¸Ã°æ±¾ÐÞ¸´ÁËCVE-2021-44228ºÍCVE-2021-45046 £¬ÊÊÓÃÓÚÈÔÔÚʹÓÃJava 7µÄÓû§¡£

 

¹©Ó¦Á´Ó°Ïì

ƾ¾Ý·ÇȨÍþͳ¼Æ £¬Ö±½ÓºÍ¼ä½ÓÒýÓÃLog4jµÄ¿ªÔ´×é¼þÔ¤¼ÆÁè¼Ý17Íò¸ö¡£Ä¿Ç°ÒÑÖªµÄÊÜÓ°ÏìµÄÓ¦ÓúÍ×é¼þ°üÂÞ£ºApache Solr¡¢Apache Struts2¡¢Apache Flink¡¢Apache Druid¡¢Apache Log4j SLF4J  Binding¡¢spring-boot-strater-log4j2¡¢Hadoop Hive¡¢ElasticSearch¡¢Jedis¡¢Logging¡¢LogstashÒÔ¼°VMware¶à¸ö²úÎïµÈ¡£

ÓÉÓڸé¶´µÄÓ°Ï췶ΧÊÇÈ«ÇòÐ﵀ £¬¹úÍâ¸÷´óÖªÃûÆóÒµºÍ×éÖ¯µÄ²úÎï¾ùÊÜÓ°Ïì £¬ÈçAmazon¡¢Apache¡¢Atlassian¡¢Cisco¡¢Debian¡¢Docker¡¢Fortinet¡¢Google¡¢IBM¡¢Ó¢Ìضû¡¢Juniper Networ¡¢Î¢Èí¡¢Oracle¡¢Red Hat¡¢UbuntuºÍVMwareµÈ¡£

CVE-2021-44228©¶´µÄÀûÓÃÄÑ¶ÈµÍ £¬Ä¬ÈÏÅäÖü´¿ÉÔ¶³ÌÀûÓà £¬ÇÒPoC/EXPÒÑÔÚ»¥ÁªÍøÉϹûÈ» £¬ÏÖÒѱ»ÍøÂç·¸×ïÍÅ»ï¹ã·ºÀûÓá£

 

©¶´Ó°Ï췶Χ

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


0x02 ´¦Öý¨Òé

1.ͨÓÃÐÞ¸´·½°¸

ÒÑÉý¼¶µ½ Log4j 2.15.0 °æ±¾µÄÓû§½¨ÒéÉý¼¶µ½ Log4j 2.16.0 ÒÔÖÆÖ¹Õë¶ÔCVE-2021-44228 ºÍ CVE-2021-45046©¶´µÄ¹¥»÷ ¡£

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©¶´Ó°Ïì¡£

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

ÏÂÔØÁ´½Ó£º

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

×¢£ºÖ»ÓÐlog4j-core JARÎļþÊÜCVE-2021-44228ºÍCVE-2021-45046©¶´µÄÓ°Ï졣ֻʹÓÃlog4j-api JARÎļþ¶ø²»Ê¹ÓÃlog4j-core JARÎļþµÄÓ¦Ó÷¨Ê½²»»áÊܵ½Ó°Ïì¡£

 

2.ͨÓÃÁÙʱ·½°¸£¨CVE-2021-44228£©

l  ½¨ÒéJDKʹÓÃ6u211¡¢7u201¡¢8u191¡¢11.0.1¼°ÒÔÉϵİ汾£»

l  ¶ÔÓÚ>=2.10°æ±¾£º

Ìí¼ÓjvmÆô¶¯²ÎÊý:-Dlog4j2.formatMsgNoLookups=true£»

ÔÚlog4j2.component.propertiesÅäÖÃÎļþÖÐÔö¼ÓÈçÏÂÄÚÈÝ£ºlog4j2.formatMsgNoLookups=true£»

ϵͳ»·¾³±äÁ¿Öн«LOG4J_FORMAT_MSG_NO_LOOKUPSÉèÖÃΪtrue£»

l  ¶ÔÓÚ2.7-2.14.1°æ±¾£º

¿ÉÒÔÐÞ¸ÄËùÓÐPatternLayoutģʽ £¬½«ÏûϢת»»Æ÷Ö¸¶¨Îª%m{nolookups} £¬¶ø²»½ö½öÊÇ%m¡£

l  ¶ÔÓÚ2.0-beta9-2.7°æ±¾£º

ΨһµÄ»º½â´ëÊ©ÊÇɾ³ýjndiookupÀࣺzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

l  ½ûÖ¹°²×°log4jµÄ·þÎñÆ÷·ÃÎÊÍâÍø £¬²¢ÔÚ½çÏÞ¶ÔdnslogÏà¹ØÓòÃû·ÃÎʽøÐмì²â¡£


0x03 ²Î¿¼Á´½Ó

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

https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

https://mp.weixin.qq.com/s/J5H9aZVhwQaVn3LvKi2Kqw

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

https://www.cisa.gov/uscert/apache-log4j-vulnerability-guidance

 

0x04 ¸üа汾

°æ±¾

ÈÕÆÚ

ÐÞ¸ÄÄÚÈÝ

V1.0

2021-12-9

Ê×´ÎÐû²¼

V2.0

2021-12-10

ÐÞ¸Äϸ½Ú

V3.0

2021-12-10

ÐÞ¸Äbug

V4.0

2021-12-12

ÐÂÔöCVE£­ID¼°²¿ÃÅÄÚÈÝ¡¢Ð޸Ļº½â´ëÊ©¡£

V5.0

2021-12-14

Ð޸Ĵ¦Öý¨Òé

V6.0

2021-12-16

ÐÞ¸Äϸ½Ú


0x05 ¹ØÓÚ¶¶È¦Îª¶Ä¶øÉú

¶¶È¦Îª¶Ä¶øÉú¼ò½é

¶¶È¦Îª¶Ä¶øÉú¹«Ë¾½¨Á¢ÓÚ1996Äê £¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐС°åÕýʽ¹ÒÅÆÉÏÊÐ £¬ÊǹúÄÚ¼«¾ßʵÁ¦µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂçÄþ¾²²úÎï¡¢¿ÉÐÅÄþ¾²¹ÜÀíÆ½Ì¨¡¢Äþ¾²·þÎñÓë½â¾ö·½°¸µÄ×ÛºÏÌṩÉÌ¡£

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

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


¹ØÓÚ¶¶È¦Îª¶Ä¶øÉú

¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖØÒªÄþ¾²Â©¶´µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÄþ¾²³ÂËß¡£

¹Ø×¢ÒÔϹ«ÖںŠ£¬»ñȡȫÇò×îÐÂÄþ¾²×ÊѶ£º

image.png