¡¾·ì϶¹«¸æ¡¿Node.jsÔ¶³Ì´úÂëÖ´Ðзì϶ (CVE-2021-22931)

°ä²¼¹¦·ò 2021-08-13

0x00 ·ì϶¸ÅÊö

CVE     ID

CVE-2021-22931

ʱ      ¼ä

2021-08-11

Àà      ÐÍ

RCE

µÈ      ¼¶

¸ßΣ

Ô¶³ÌÀûÓÃ

ÊÇ

Ó°ÏìÁìÓò


¹¥»÷¸´ÔÓ¶È


¿ÉÓÃÐÔ


Óû§½»»¥


ËùÐèȨÏÞ


PoC/EXP


ÔÚÒ°ÀûÓÃ


 

0x01 ·ì϶ÏêÇé

image.png

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 ¹ØÓÚ8827Ì«Ñô¼¯ÍÅ

¹Ø×¢ÒÔϹ«¼ÒºÅ£¬£¬£¬£¬£¬£¬£¬»ñÈ¡¸ü¶à×ÊѶ£º

image.png