Npm Netmask SSRFÈÆ¹ýÎó²î£¨CVE-2021-28918£©

Ðû²¼Ê±¼ä 2021-03-29

0x00 Îó²î¸ÅÊö

CVE  ID

CVE-2021-28918

ʱ    ¼ä

2021-03-29

Àà   ÐÍ


µÈ    ¼¶

¸ßΣ

Ô¶³ÌʹÓÃ

ÊÇ

Ó°Ïì¹æÄ£

Netmask <= v1.1.0

PoC/EXP

ÒѹûÕæ

ÔÚҰʹÓÃ


 

0x01 Îó²îÏêÇé

image.png

 

NetmaskÊÇnpm¿âÖеÄÒ»¸öÈí¼þ°ü£¬£¬£¬ £¬ £¬£¬Ëü±»³ÉǧÉÏÍòµÄÓ¦ÓóÌÐòÓÃÀ´ÆÊÎö»ò½ÏÁ¿IPv4µØµãºÍCIDR¿é¡£¡£¡£¡£¡£¡£¡£ ¡£¸ÃÈí¼þ°üµÄÿÖÜÏÂÔØÁ¿Áè¼Ý300Íò´Î£¬£¬£¬ £¬ £¬£¬×èÖ¹ÏÖÔÚ£¬£¬£¬ £¬ £¬£¬netmaskÒѾ­ÀÛ¼ÆÓÐÁè¼Ý2.38ÒÚµÄ×ÜÏÂÔØÁ¿¡£¡£¡£¡£¡£¡£¡£ ¡£±ðµÄ£¬£¬£¬ £¬ £¬£¬Ô¼ÄªÓÐ278,000¸öGitHub´æ´¢¿âÒÀÀµnetmask¡£¡£¡£¡£¡£¡£¡£ ¡£

2021Äê03ÔÂ28ÈÕ£¬£¬£¬ £¬ £¬£¬netmask±»Åû¶±£´æÒ»¸ö¿Éµ¼ÖÂSSRF»òRFIµÄÇå¾²Îó²î£¨CVE-2021-28918£©¡£¡£¡£¡£¡£¡£¡£ ¡£ÔÚÆÊÎöIPµØµãʱ´øÓÐǰµ¼ÁãµÄÇéÐÎÏ£¬£¬£¬ £¬ £¬£¬ÓÉÓÚδ׼ȷ¾ÙÐÐÑéÖ¤£¬£¬£¬ £¬ £¬£¬ÍøÂçÑÚÂ뽫»áÆÊÎöΪ²î±ðµÄIP¡£¡£¡£¡£¡£¡£¡£ ¡£¸ÃÎó²î½«µ¼Ö³ÉǧÉÏÍòµÄÏîÄ¿ÈÝÒ×Êܵ½SSRFÈÆ¹ýµÄ¹¥»÷£¬£¬£¬ £¬ £¬£¬ÏÖÔÚ¸ÃÎó²îµÄPoCÒÑÔÚGitHubÉϹûÕæ¡£¡£¡£¡£¡£¡£¡£ ¡£

IPµØµã¿ÉÒÔÓöàÖÖÃûÌÃÌåÏÖ£¬£¬£¬ £¬ £¬£¬°üÀ¨Ê®Áù½øÖƺÍÕûÊý£¬£¬£¬ £¬ £¬£¬µ«×î³£¼ûµÄIPv4µØµãÒÔÊ®½øÖÆÃûÌÃÌåÏÖ¡£¡£¡£¡£¡£¡£¡£ ¡£ºÃ±È£¬£¬£¬ £¬ £¬£¬IPv4µØµãÒÔÊ®½øÖÆÃûÌÃÌåÏÖΪ104.20.59.209£¬£¬£¬ £¬ £¬£¬¿ÉÊǰ˽øÖÆÃûÌÃÌåÏÖΪ0150.0024.0073.0321¡£¡£¡£¡£¡£¡£¡£ ¡£

ÔÚChromeä¯ÀÀÆ÷µÄµØµãÀ¸ÖÐÊäÈë0127.0.0.1/£¬£¬£¬ £¬ £¬£¬ä¯ÀÀÆ÷»á½«ÆäÊÓΪ°Ë½øÖÆÃûÌõÄIP¡£¡£¡£¡£¡£¡£¡£ ¡£ÏÖʵÉÏ£¬£¬£¬ £¬ £¬£¬µ±°´ÏÂEnter»òReturn¼üºó£¬£¬£¬ £¬ £¬£¬IP»á¸ü¸ÄΪʮ½øÖƵÈЧֵ87.0.0.1¡£¡£¡£¡£¡£¡£¡£ ¡£ÕâÊÇÓÉÓÚ´ó´ó¶¼ÍøÂçä¯ÀÀÆ÷£¨ÈçChrome£©£¬£¬£¬ £¬ £¬£¬»á×Ô¶¯Åâ³¥»ì¼°ÃûÌõÄIP¡£¡£¡£¡£¡£¡£¡£ ¡£Õâ¾ÍÊÇ´ó´ó¶¼Ó¦ÓóÌÐò´¦Öóͷ£´ËÀàÄ£ÀâÁ½¿ÉµÄIPµØµãµÄ·½·¨¡£¡£¡£¡£¡£¡£¡£ ¡£

image.png

 

ÐèÒª×¢ÖØµÄÊÇ£¬£¬£¬ £¬ £¬£¬127.0.0.1²¢·Ç¹«¹²IPµØµã£¬£¬£¬ £¬ £¬£¬¶øÊÇÒ»¸ö»·»ØµØµã£¬£¬£¬ £¬ £¬£¬¿ÉÊÇ£¬£¬£¬ £¬ £¬£¬Í¨¹ýÄ£ÀâÁ½¿ÉµÄÌåÏÖ½«Æä¸ü¸ÄΪ¹«¹²IPµØµã£¬£¬£¬ £¬ £¬£¬´Ó¶øµ¼ÖÂÆÊÎöΪÁíһ̨Ö÷»ú¡£¡£¡£¡£¡£¡£¡£ ¡£

¿ÉÊÇ£¬£¬£¬ £¬ £¬£¬¹ØÓÚnpm netmask£¬£¬£¬ £¬ £¬£¬ÈκÎǰµ¼Áã¶¼»á±»¼òÆÓµØ°þÀëºÍÑïÆú¡£¡£¡£¡£¡£¡£¡£ ¡£Æ¾Ö¤IETFµÄԭʼ¹æ·¶£¬£¬£¬ £¬ £¬£¬IPv4µØµãµÄ²¿·ÖÈôÊÇǰ׺Ϊ 0£¬£¬£¬ £¬ £¬£¬¿ÉÒÔ±»ÆÊÎöΪ°Ë½øÖÆ¡£¡£¡£¡£¡£¡£¡£ ¡£¿ÉÊÇnetmaskºöÂÔÁËÕâÒ»µã£¬£¬£¬ £¬ £¬£¬ËüʼÖÕ½«IPÊÓΪʮ½øÖÆ£¬£¬£¬ £¬ £¬£¬ÕâÒâζ×ÅÔÚÄúʵÑéÑéÖ¤IPÊôÓÚij¸ö¹æÄ£Ê±£¬£¬£¬ £¬ £¬£¬Ê¹ÓûùÓڰ˽øÖƵÄIPv4µØµãÌåÏÖ½«ÊǹýʧµÄ¡£¡£¡£¡£¡£¡£¡£ ¡£

ÈôÊǹ¥»÷ÕßÄܹ»Ó°ÏìÓ¦ÓóÌÐòÆÊÎöµÄIPµØµã£¬£¬£¬ £¬ £¬£¬Ôò¸ÃÎÊÌâ¿ÉÄܻᵼÖÂÖÖÖÖÎó²î£¬£¬£¬ £¬ £¬£¬´ÓЧÀÍÆ÷¶ËÇëÇóαÔ죨SSRF£©Èƹýµ½Ô¶³ÌÎļþ°üÀ¨£¨RFI£©¡£¡£¡£¡£¡£¡£¡£ ¡£

¹¥»÷ÕßÔÚÔËÐнڵãЧÀÍÆ÷À´ÕûÀíÈëÕ¾ÇëÇó»òÅÌÎʲÎÊý£¬£¬£¬ £¬ £¬£¬¸ÃÇëÇó»òÅÌÎʲÎÊý¿ÉÄÜÊÇÓÃÓÚ½øÒ»²½ÅþÁ¬µÄURI£¬£¬£¬ £¬ £¬£¬»òʹÓýÏÔçµÄ0ǰ׺JavaScriptÌåÏÖÐÎʽ£¬£¬£¬ £¬ £¬£¬ÒÔ»ùÓڰ˽øÖƵIJ¿·Ö»òËùÓаËλ×Ö½ÚÀ´ÖÆ×÷IP¡£¡£¡£¡£¡£¡£¡£ ¡£Õâ¿ÉÄܵ¼ÖÂSSRF£¬£¬£¬ £¬ £¬£¬ÀýÈ磬£¬£¬ £¬ £¬£¬Í¨¹ýת´ï0177.0.0.01À´Ç¿ÖÆÐ§ÀÍÆ÷ÅþÁ¬µ½127.0.0.1£¨177ÊÇÊ®½øÖÆ127µÄ°Ë½øÖÆÊý£©¡£¡£¡£¡£¡£¡£¡£ ¡£Ò»¸öºÜºÃµÄÀý×ÓÊÇ£¬£¬£¬ £¬ £¬£¬Ò»¸ö̻¶webhooks²¢Í¨¹ýnetmask¼ìÄ¥Á·Ö¤Óû§URLµÄϵͳÈÝÒ×Êܵ½SSRF¹¥»÷¡£¡£¡£¡£¡£¡£¡£ ¡£

image.png

¶øÕâ¸öbugÒ²¿ÉÒÔ±»Ê¹ÓÃÀ´¾ÙÐÐÔ¶³ÌÎļþ°üÀ¨£¨RFI£©£¬£¬£¬ £¬ £¬£¬ÈôÊǹ¥»÷ÕßÖÆ×÷Ò»¸ö¶ÔnetmaskÀ´Ëµ¿´ÆðÀ´ÊÇ˽ÓеÄIPµØµã£¬£¬£¬ £¬ £¬£¬ÓÉÓÚnetmask½«ËùÓÐIPv4²¿·Ö£¨°ËλÊý£©×ª»»ÎªÊ®½øÖÆÃûÌõķ½·¨£¬£¬£¬ £¬ £¬£¬±»ÆäËü×é¼þÆÀ¹ÀΪ¹«¹²ÃûÌᣡ£¡£¡£¡£¡£¡£ ¡£

ÖÖÖÖÍøÂç»ù´¡¼Ü¹¹ºÍÇå¾²²úÆ·£¨ÀýÈç WebÓ¦Ó÷À»ðǽ£©¶¼ÒÀÀµÓÚÍøÂçÑÚÂëÀ´¹ýÂ˳ö×èÖ¹ÁбíºÍÔÊÐíÁбíÖеÄIP¡£¡£¡£¡£¡£¡£¡£ ¡£Õ⻹Òâζ×Å£¬£¬£¬ £¬ £¬£¬ÈôÊDz»¼ÓÒÔ¼ì²é£¬£¬£¬ £¬ £¬£¬Ôò¿ÉÄܻᵼÖ´ËÀàȱÏÝ£¬£¬£¬ £¬ £¬£¬´Ó¶øµ¼ÖÂÑÏÖØbug¡£¡£¡£¡£¡£¡£¡£ ¡£

2018Ä꣬£¬£¬ £¬ £¬£¬Ê¢ÐеÄÈí¼þÏîÄ¿ curlÖÐÒ²·¢Ã÷¾ßÓÐÏàͬÀàÐ͵ÄÎó²î£¬£¬£¬ £¬ £¬£¬Ëü½«°Ë½øÖÆIPv4µØµãÆÊÎöΪʮ½øÖÆ£¬£¬£¬ £¬ £¬£¬ºÃ±È£¬£¬£¬ £¬ £¬£¬ÔËÐС° curl -v 0177.0.0.1¡±curlÅþÁ¬µ½177.0.0.1£¬£¬£¬ £¬ £¬£¬¶ø²»ÊÇ»·»ØµØµã127.0.0.1¡£¡£¡£¡£¡£¡£¡£ ¡£´Ëǰ£¬£¬£¬ £¬ £¬£¬Sick Codes¡¢JacksonºÍSahlerÔøÔÚprivate-ipÈí¼þ°üÖз¢Ã÷ÁËÒ»¸öÀàËÆµÄÎó²î£¨CVSSÆÀ·Ö9.8£©£¬£¬£¬ £¬ £¬£¬¸ÃÈí¼þ°üÿÖÜÓÐ17.5Íò×óÓÒµÄÏÂÔØÁ¿¡£¡£¡£¡£¡£¡£¡£ ¡£

 

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

ÏÖÔÚ´ËÎó²îÒѾ­ÐÞ¸´£¬£¬£¬ £¬ £¬£¬½¨Òéʵʱ¸üÐÂÖÁnetmask°æ±¾2.0.0¡£¡£¡£¡£¡£¡£¡£ ¡£

ÏÂÔØÁ´½Ó£º

https://www.npmjs.com/package/netmask

 

0x03 ²Î¿¼Á´½Ó

https://www.npmjs.com/package/netmask

https://github.com/sickcodes/security/blob/master/advisories/SICK-2021-011.md

https://www.bleepingcomputer.com/news/security/critical-netmask-networking-bug-impacts-thousands-of-applications/

https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/

 

0x04 ʱ¼äÏß

2021-03-28  Sick codesÅû¶Îó²î

2021-03-29  VSRCÐû²¼Ç徲ͨ¸æ

 

0x05 ¸½Â¼

 

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

image.png