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ºÅ