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