Npm Netmask SSRFÈÆ¹ýÎó²î£¨CVE-2021-28918£©
Ðû²¼Ê±¼ä 2021-03-290x00 Îó²î¸ÅÊö
CVE ID | CVE-2021-28918 | ʱ ¼ä | 2021-03-29 |
Àà ÐÍ | µÈ ¼¶ | ¸ßΣ | |
Ô¶³ÌʹÓà | ÊÇ | Ó°Ïì¹æÄ£ | Netmask <= v1.1.0 |
PoC/EXP | ÒѹûÕæ | ÔÚҰʹÓà |
0x01 Îó²îÏêÇé

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µØµãµÄ·½·¨¡£¡£¡£¡£¡£¡£¡£¡£

ÐèÒª×¢ÖØµÄÊÇ£¬£¬£¬£¬£¬£¬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¹¥»÷¡£¡£¡£¡£¡£¡£¡£¡£

¶øÕâ¸ö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/



¾©¹«Íø°²±¸11010802024551ºÅ