¡¾Îó²îͨ¸æ¡¿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 ¹ØÓÚ¼øºÚµ£±£Íø

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

image.png