PHPMailerÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2021-3603£©

°ä²¼¹¦·ò 2021-06-21

0x00 ·ì϶¸ÅÊö

CVE     ID

CVE-2021-3603

ʱ      ¼ä

2021-06-21

Àà      ÐÍ

RCE

µÈ      ¼¶

¸ßΣ

Ô¶³ÌÀûÓÃ

ÊÇ

Ó°ÏìÁìÓò

PHPMailer <= 6.4.1  

¹¥»÷¸´ÔÓ¶È

¸ß

¿ÉÓÃÐÔ

¸ß

Óû§½»»¥

ÎÞ

ËùÐèȨÏÞ

ÎÞ

PoC/EXP

Òѹ«¿ª

ÔÚÒ°ÀûÓÃ

·ñ

 

0x01 ·ì϶ÏêÇé

image.png

PHPMailerÊÇÒ»¸öÓÃÓÚ·¢Ë͵ç×ÓÓʼþµÄ¿ªÔ´PHP¿â£¬Äܹ»É趨·¢ËÍÓʼþµØÖ·¡¢»Ø¸´µØÖ·¡¢ÓʼþÖ÷Ìâ¡¢htmlÍøÒ³¼°ÉÏ´«¸½¼þ£¬Ê¹ÓÃÆðÀ´¼«¶È·½±ã£¬Ä¿Ç°Òѱ»È«Çò³¬¹ý900ÍòµÄÓû§Ê¹Óá£

2021Äê06ÔÂ16ÈÕ£¬PHPMaile°ä²¼°²È«²¼¸æ£¬½¨¸´ÁËPHPMailerÖеÄ2¸öÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2021-3603ºÍCVE-2021-34551£©£¬Ô¶³Ì¹¥»÷ÕßÄܹ»ÀûÓÃÕâЩ·ì϶ÔÚϵͳÉÏÖ´ÐÐËÁÒâ´úÂë¡£

PHPMailerÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2021-3603£©

¸Ã·ì϶µÄCVSSv3ÆÀ·ÖΪ8.1¡£validateAddress()º¯ÊýÓÃÓÚÑéÖ¤µç×ÓÓʼþµØÖ·£¬ÈôÊÇvalidateAddress()µÄ$patternselect²ÎÊý±»ÉèÖÃΪ'php'£¨Ä¬ÈÏÖµ£¬ÓÉPHPMailer::$validator½ç˵£©£¬²¢ÇÒÈ«¾Ö¶¨Ãû¿Õ¼äÔ̺¬Ò»¸öÃûΪphpµÄº¯Êý£¬Ëü½«ÓÅÏÅ×ÚͬÃûµÄÄÚÖÃÑéÖ¤Æ÷±»Å²Óá£Ô¶³Ì¹¥»÷ÕßÄܹ»Í¨¹ý»ú¹Ø¶ñÒâÒªÇóÀ´ÀûÓô˷ì϶£¬´Ó¶øÄܹ»ÔÚÖ¸±êϵͳÉÏÖ´ÐÐËÁÒâ´úÂë¡£¸Ã·ì϶ÒѾ­ÔÚPHPMailer 6.5.0ÖÐͨ¹ý»Ø¾øÊ¹Óõ¥Ò»×Ö·û´®×÷ΪÑéÖ¤Æ÷º¯ÊýÃû³ÆÀ´»º½â¡£

 

PHPMailerÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2021-34551£©

ÈôÊÇsetLanguage()²½ÖèµÄ$lang_path²ÎÊýδ¹ýÂËÓû§ÊäÈëÇÒ±»ÉèÖÃΪUNCõè¾¶£¬¹¥»÷ÕßÄܹ»Í¨¹ý´Ó¸ÃUNCõè¾¶¼ÓÔØÎļþÀ´Ô¶³ÌÖ´Ðо籾»ò´úÂë¡£´Ë·ì϶½ö´æÔÚÓڿɽâÎö UNC õè¾¶µÄϵͳ£¬Í¨³£½öºÏÓÃÓÚ Microsoft Windows¡£

 

Ó°ÏìÁìÓò

PHPMailer <= 6.4.1

 

0x02 ´ëÖý¨Òé

Ŀǰ´Ë·ì϶ÒѾ­½¨¸´£¬½¨ÒéʵʱÉý¼¶¸üÐÂÖÁPHPMailer 6.5.0¡£

ÏÂÔØÁ´½Ó£º

https://github.com/PHPMailer/PHPMailer

 

ͨÓð²È«½¨Òé

¶Ô´úÂë½øÐа²È«É󼯣¬¾¡Ôç¼ì²âDZÔڵݲȫ·ì϶£¬²¢¼ÓÇ¿´úÂëÂß¼­ÐÔ¡£

¶ÔÓû§µÄÊäÈë½øÐйýÂË»òתÒ壬Ԥ·À²ÎÊý¿É¿Ø¡£

Óû§Ó¦¶¨ÆÚ¸üÐÂÈí¼þ¡¢·¨Ê½ºÍÀûÓ÷¨Ê½£¬È·±£ÀûÓ÷¨Ê½ÊÇ×îеÄ£¬ÒÔ± £»¤ÏµÍ³ÃâÊÜ·ì϶ÀûÓá£

 

0x03 ²Î¿¼Á´½Ó

https://github.com/PHPMailer/PHPMailer/blob/master/SECURITY.md

https://github.com/PHPMailer/PHPMailer/commit/45f3c18dc6a2de1cb1bf49b9b249a9ee36a5f7f3

https://www.huntr.dev/bounties/1-PHPMailer/PHPMailer/

https://nvd.nist.gov/vuln/detail/CVE-2021-3603

 

0x04 ¹¦·òÏß

2021-06-16  PHPMailer°ä²¼°²È«²¼¸æ

2021-06-21  VSRC°ä²¼°²È«¹«¸æ

 

0x05 ¸½Â¼

 

CVSSÆÀ·Ö³ß¶È¹ÙÍø£ºhttp://www.first.org/cvss/

image.png