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