¡¾Îó²îͨ¸æ¡¿Node.jsÔ¶³Ì´úÂëÖ´ÐÐÎó²î (CVE-2021-22931)
Ðû²¼Ê±¼ä 2021-08-130x00 Îó²î¸ÅÊö
CVE ID | CVE-2021-22931 | ʱ ¼ä | 2021-08-11 |
Àà ÐÍ | RCE | µÈ ¼¶ | ¸ßΣ |
Ô¶³ÌʹÓà | ÊÇ | Ó°Ïì¹æÄ£ | |
¹¥»÷ÖØÆ¯ºó | ¿ÉÓÃÐÔ | ||
Óû§½»»¥ | ËùÐèȨÏÞ | ||
PoC/EXP | ÔÚҰʹÓà |
0x01 Îó²îÏêÇé
Node.jsÊÇÒ»¸ö»ùÓÚChrome V8ÒýÇæµÄJavaScriptÔËÐÐÇéÐΣ¬£¬£¬£¬£¬ËüʹÓøßЧ¡¢ÇáÁ¿¼¶µÄÊÂÎñÇý¶¯¡¢·ÇÛÕ±Õ I/O Ä£×Ó¡£¡£¡£¡£¡£¡£Node.jsÖеİü¹ÜÀíÆ÷npm£¬£¬£¬£¬£¬ÊÇÈ«ÇòÖ÷Á÷µÄ¿ªÔ´¿âÉú̬ϵͳ¡£¡£¡£¡£¡£¡£
2021Äê8ÔÂ11ÈÕ£¬£¬£¬£¬£¬Node.jsÐû²¼ÁËv16.x¡¢v14.x ºÍ v12.x¿¯ÐаæµÄÇå¾²¸üУ¬£¬£¬£¬£¬ÐÞ¸´ÁËNode.jsÖеÄÒ»¸öÔ¶³Ì´úÂëÖ´ÐÐÎó²î£¨CVE-2021-22931£¬£¬£¬£¬£¬¸ßΣ£©£¬£¬£¬£¬£¬ÏêÇéÈçÏ£º
ÓÉÓÚNode.js DNS¿âÖеÄÓòÃûЧÀÍÆ÷·µ»ØµÄÖ÷»úÃûȱÉÙÊäÈëÑéÖ¤£¬£¬£¬£¬£¬Õâ¿ÉÄܵ¼ÖÂÊäÍÉ»¯ÎóµÄÖ÷»úÃû£¨¿ÉÄܵ¼ÖÂÓòÃûÐ®ÖÆ£©ºÍʹÓøÿâµÄÓ¦ÓóÌÐòÖб£´æ×¢ÈëÎó²î£¬£¬£¬£¬£¬Ô¶³Ì¹¥»÷Õß¿ÉʹÓôËÎó²îÖ´ÐÐXSS¹¥»÷¡¢Ê¹Ó¦ÓóÌÐòÍ߽⣨¾Ü¾øÐ§ÀÍ£©»òÔ¶³ÌÖ´ÐжñÒâ´úÂë¡£¡£¡£¡£¡£¡£
±ðµÄ£¬£¬£¬£¬£¬Node.js±¾´ÎÐû²¼µÄÇå¾²¸üл¹ÐÞ¸´ÁËrejectUnauthorized²ÎÊýµÄ²»ÍêÕûÑéÖ¤ÎÊÌ⣨CVE-2021-22939£¬£¬£¬£¬£¬µÍΣ)£»£»£»£»£»ÒÔ¼°Ò»¸öUse-after-freeÎó²î£¨CVE-2021-22940£¬£¬£¬£¬£¬¸ßΣ£©£¬£¬£¬£¬£¬¸ÃÎó²îÊÇCVE-2021-22930µÄÐÞ¸´²»ÍêÕûµ¼Öµģ¬£¬£¬£¬£¬¹¥»÷Õß¿ÉÒÔʹÓÃÄÚ´æËð»µÀ´¸Ä±äÀú³ÌÐÐΪ¡£¡£¡£¡£¡£¡£
Ó°Ïì¹æÄ£
Node.js 12.x < 12.22.5 (LTS)
Node.js 14.x < 14.17.5 (LTS)
Node.js 16.x < 16.6.2 (Current)
0x02 ´¦Öóͷ£½¨Òé
ÏÖÔÚ´ËÎó²îÒѾÐÞ¸´¡£¡£¡£¡£¡£¡£½¨ÒéÊÜÓ°ÏìÓû§ÊµÊ±Éý¼¶¸üе½ÒÔϰ汾£º
Node.js v12.22.5 (LTS)
Node.js v14.17.5 (LTS)
Node.js v16.6.2 (Current)
ÏÂÔØÁ´½Ó£º
https://nodejs.org/en/download/
0x03 ²Î¿¼Á´½Ó
https://nodejs.org/en/blog/vulnerability/aug-2021-security-releases/
https://nodejs.org/en/blog/release/v12.22.5/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22931
0x04 ¸üа汾
°æ±¾ | ÈÕÆÚ | ÐÞ¸ÄÄÚÈÝ |
V1.0 | 2021-08-13 | Ê×´ÎÐû²¼ |
0x05 Îĵµ¸½Â¼
CNVD£ºwww.cnvd.org.cn
CNNVD£ºwww.cnnvd.org.cn
CVE£ºcve.mitre.org
NVD£ºnvd.nist.gov
CVSS£ºwww.first.org
0x06 ¹ØÓÚ¼øºÚµ£±£Íø
¹Ø×¢ÒÔϹ«Öںţ¬£¬£¬£¬£¬»ñÈ¡¸ü¶à×ÊѶ£º