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