PHP ComposerÏÂÁî×¢ÈëÎó²î£¨CVE-2021-29472£©

Ðû²¼Ê±¼ä 2021-04-30

0x00 Îó²î¸ÅÊö

CVE  ID

CVE-2021-29472

ʱ    ¼ä

2021-04-30

Àà   ÐÍ

ÏÂÁî×¢Èë

µÈ    ¼¶

¸ßΣ

Ô¶³ÌʹÓÃ

ÊÇ

Ó°Ïì¹æÄ£

Composer < 1.10.22 || >=2.0,<2.0.13

PoC/EXP

δ¹ûÕæ

ÔÚҰʹÓÃ

·ñ

 

0x01 Îó²îÏêÇé

image.png

 

2021Äê04ÔÂ27ÈÕ£¬£¬£¬£¬PHP ComposerÈí¼þ°üÐû²¼ÁËComposer 1.10.22ºÍ2.0.13°æ±¾£¬£¬£¬£¬ÐÞ¸´ÁËPHP ComposerÖеÄÒ»¸öÏÂÁî×¢ÈëÎó²î£¨CVE-2021-29472£©£¬£¬£¬£¬¸ÃÎó²îµÄCVSSv3»ù±¾µÃ·ÖΪ8.8£¬£¬£¬£¬¹¥»÷Õß¿ÉÒÔͨ¹ýʹÓôËÎó²îÖ´ÐÐí§ÒâÏÂÁî²¢ÔÚ¿ª·¢ÇéÐÎÖн¨ÉèºóÃÅ£¬£¬£¬£¬ÒÔ¾ÙÐй©Ó¦Á´¹¥»÷¡£¡£

 

Îó²îϸ½Ú

ComposerÊÇPHPµÄÒ»¸öÒÀÀµÖÎÀíÆ÷¹¤¾ß£¬£¬£¬£¬ËüʹÓÃÔÚÏßЧÀÍPackagistÀ´È·¶¨Èí¼þ°üÏÂÔØµÄ׼ȷ¹©Ó¦Á´¡£¡£¾ÝÔ¤¼Æ£¬£¬£¬£¬Packagist»ù´¡ÉèʩÿÔÂԼĪΪ14ÒÚ¸öÏÂÔØÇëÇóÌṩЧÀÍ¡£¡£

ÓÉÓÚRoot composer.jsonÎļþÖеÄMercurial¿âµÄURLºÍ°üÔ´ÏÂÔØµÄURLûÓб»×¼È·ÕûÀí£¬£¬£¬£¬Õ⽫µ¼Ö¹¥»÷Õß×¢ÈëµÄ²ÎÊý±»Ú¹ÊÍΪComposerÖ´ÐеÄϵͳÏÂÁîµÄÑ¡Ïî¡£¡£ÈôÊÇϵͳÖÐ×°ÖÃÁËhg/Mercurial£¬£¬£¬£¬Ôò¶ñÒâÖÆ×÷µÄURLÖµ½«µ¼Ö´úÂëÔÚHgDriverÖб»Ö´ÐС£¡£

µ«ÓÉÓÚcomposer.jsonÎļþͨ³£ÔÚÓû§×Ô¼ºµÄ¿ØÖÆÖ®Ï£¬£¬£¬£¬Òò´Ë¶ÔComposerÓû§µÄÖ±½ÓÓ°ÏìÊÇÓÐÏ޵ġ£¡£¶øÔ´ÏÂÔØURLÖ»ÄÜÓÉÓû§Ã÷È·ÐÅÈεĵÚÈý·½Composer¿ÍÕ»Ìṩ£¬£¬£¬£¬ÒÔÏÂÔØºÍÖ´ÐÐÔ´´úÂ룬£¬£¬£¬ÀýÈçComposer²å¼þ¡£¡£

¸ÃÎó²îÖ÷ÒªÓ°ÏìÊǽ«Óû§ÊäÈëת´ï¸øComposerµÄЧÀÍ£¬£¬£¬£¬°üÀ¨Packagist.orgºÍPrivate Packagist£¬£¬£¬£¬²¢µ¼ÖÂÔ¶³Ì´úÂëÖ´ÐС£¡£

ÔÚÊÕµ½Îó²î±¨¸æºóµÄ12СʱÄÚ£¬£¬£¬£¬Packagist.orgºÍPrivate PackagistÒѾ­ÐÞ¸´Á˸ÃÎó²î£¬£¬£¬£¬²¢ÇÒͨ¹ýÈÕÖ¾Éó²é£¬£¬£¬£¬ÔÝδ·¢Ã÷¸ÃÎó²î±»Ê¹Óᣡ£Ê¹ÓÃVcsRepository/VcsDriver»ò¶þ´Î¿ª·¢µÄÓ¦ÓÿÉÄÜÊܵ½´ËÎó²îµÄÓ°Ï죬£¬£¬£¬Ó¦Á¬Ã¦Éý¼¶ÆäcomposerÒÀÀµ¹ØÏµ¡£¡£

 

0x02 ´¦Öóͷ£½¨Òé

ÏÖÔÚ´ËÎó²îÒѾ­ÐÞ¸´£¬£¬£¬£¬½¨ÒéÉý¼¶µ½Composer 1.10.22»ò2.0.13¡£¡£

ÏÂÔØÁ´½Ó£º

https://getcomposer.org/

 

0x03 ²Î¿¼Á´½Ó

https://blog.sonarsource.com/php-supply-chain-attack-on-composer

https://blog.packagist.com/composer-command-injection-vulnerability/

https://github.com/composer/composer/security/advisories/GHSA-h5h8-pc6h-jvvx

https://securityaffairs.co/wordpress/117366/security/php-composer-flaw.html?

 

0x04 ʱ¼äÏß

2021-04-27  Îó²î¹ûÕæ

2021-04-30  VSRCÐû²¼Ç徲ͨ¸æ

 

0x05 ¸½Â¼

 

CVSSÆÀ·Ö±ê×¼¹ÙÍø£ºhttp://www.first.org/cvss/

image.png