¡¾·ì϶¹«¸æ¡¿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 ¹ØÓÚGA»Æ½ð¼×

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

image.png