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°µÊ¾´ó¾Ö£¬ÒÔ»ùÓڰ˽øÔìµÄ²¿ÃÅ»òÈ«Êý°Ëλ×Ö½ÚÀ´Ôì×÷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