¡¾·ì϶¹«¸æ¡¿RustºÅÁî×¢Èë·ì϶£¨CVE-2024-24576£©

°ä²¼¹¦·ò 2024-04-10


Ò»¡¢·ì϶¸ÅÊö

·ìϼûû³Æ

  RustºÅÁî×¢Èë·ì϶

CVE   ID

CVE-2024-24576

·ì϶ÀàÐÍ

ºÅÁî×¢Èë

·¢ÏÖ¹¦·ò

2024-04-10

·ì϶ÆÀ·Ö

10.0

·ì϶µÈ¼¶

ÑϳÁ

¹¥»÷ÏòÁ¿

ÍøÂç

ËùÐèȨÏÞ

ÎÞ

ÀûÓÃÄѶÈ

µÍ

Óû§½»»¥

ÎÞ

PoC/EXP

δ֪

ÔÚÒ°ÀûÓÃ

δ֪

 

RustÊÇÒ»ÖÖͨÓᢱàÒëÐͱà³Ì˵»°£¬Ç¿µ÷»úÄÜ¡¢ÀàÐͰ²È«ºÍ²¢·¢ÐÔ£¬Ö§³Öº¯Êýʽ¡¢²¢·¢Ê½¡¢¹ý³ÌʽÒÔ¼°ÃæÏò¶ÔÏóµÄ±à³Ì·ç¸ñ¡£

2024Äê4ÔÂ10ÈÕ£¬±¦ÔËÀ³¹Ù·½ÍøÕ¾VSRC¼à²âµ½Rust ³ß¶È¿âÖдæÔÚºÅÁî×¢Èë·ì϶£¨CVE-2024-24576£¬±»³ÆÎªBatBadBut£©£¬¸Ã·ì϶µÄCVSSÆÀ·ÖΪ10.0£¬¿ÉÄÜÔÚWindowsϵͳÉϵ¼ÖºÅÁî×¢Èë¹¥»÷£¬Ä¿Ç°¸Ã·ì϶µÄϸ½ÚÒѹ«¿ª¡£

Rust³ß¶È¿â1.77.2 °æ±¾Ö®Ç°£¬ÔÚ Windows ÉÏʹÓÃCommand API ŲÓÃÅú´¦ÖÃÎļþ£¨´øÓÐbatºÍcmdÀ©´óÃû£©Ê±£¬Rust ³ß¶È¿âûÓÐÕýȷתÒåÅú´¦ÖÃÎļþµÄ²ÎÊý£¬¿ÉÄܽÚÔì´«µÝ¸øÌìÉú¹ý³ÌµÄ²ÎÊýµÄ¹¥»÷Õß¿ÉÈÆ¹ýתÒåÖ´ÐÐËÁÒâshell ºÅÁî¡£

 

¶þ¡¢·ì϶¸´ÏÖ

image.png                                             



Èý¡¢Ó°ÏìÁìÓò

Rust < 1.77.2£¨Windowsƽ̨£©

×¢£ºÈôÊÇ´úÂë»òÒÀÀµÏî֮һʹÓò»ÊÜÐÅÀµµÄ²ÎÊýÖ´ÐÐÅú´¦ÖÃÎļþ£¬Ôò Windows ÉÏ 1.77.2 ֮ǰµÄËùÓÐ Rust °æ±¾³ÇÊÐÊܵ½Ó°Ï죬ÆäËûƽ̨»òʹÓò»Ò×Êܵ½Ó°Ïì¡£

BatBadBut·ì϶ÔÊÐí¹¥»÷ÕßÔÚÂú×ãÌØ¶¨Ç°Ìáʱ¶Ô¼ä½ÓÒÀÀµCreateProcessº¯ÊýµÄWindowsÀûÓ÷¨Ê½Ö´ÐкÅÁî×¢Èë¡£CreateProcessº¯ÊýÔÚÖ´ÐÐÅú´¦ÖÃÎļþʱ»áÒþʽÌìÉúcmd.exe¡£

BatBadBut·ì϶¿ÉÄÜÓ°ÏìErlang¡¢Go¡¢Haskell¡¢Java¡¢Node.js¡¢PHP¡¢Python¡¢Ruby¡¢RustµÈ¶àÖÖ±à³Ì˵»°£¬µ±±à³Ì˵»°·â×° CreateProcess º¯Êý²¢ÎªºÅÁî²ÎÊýÔö³¤×ªÒå»úÔìʱ´æÔÚ°²È«ÎÊÌ⣬µ¼Ö¶ñÒâºÅÁîÐвÎÊý¿ÉÄÜ¿ÉÄÜÖ´ÐкÅÁî×¢Èë¡£

ÓйØCVEÔ̺¬CVE-2024-1874¡¢CVE-2024-22423¡¢CVE-2024-24576£¨Rust£©¡¢CVE-2024-3566 ¡¢CVE-2024-27980£¨Node.js£©µÈ£¬Ä¿Ç°PHP¡¢Rust¡¢Node.jsµÈ±à³Ì˵»°ÒѰ䲼Á˽¨¸´°æ±¾£¬ÏêÇé¿É²Î¿¼£ºhttps://kb.cert.org/vuls/id/123335

 


ËÄ¡¢°²È«´ëÊ©

4.1 Éý¼¶°æ±¾

Ŀǰ¹Ù·½ÒÑÔÚRust °æ±¾1.77.2Öлº½â½¨¸´Á˸÷ì϶£¬¸Ä½øÁËתÒå´úÂëµÄÎÈÖØÐÔ£¬²¢¸ü¸ÄÁËCommand API£¬Ê¹ÆäÔÚÎÞ·¨°²È«µØ×ªÒå²ÎÊýʱ·µ»ØInvalidInputÃýÎó¡£ÊÜÓ°ÏìÓû§¿É¸üе½Rust 1.77.2»ò¸ü¸ß°æ±¾¡£

ÏÂÔØÁ´½Ó£º

https://blog.rust-lang.org/2024/04/09/Rust-1.77.2.html

°æ±¾¼ì²â£º

ÔÚWindows cmd »ò PowershellÖÐÖ´ÐкÅÁrustc --version»òÕß rustc -V

4.2 һʱ´ëÊ©

Ô¤·ÀÔÚWindowsÉÏʹÓò»ÊÜÐÅÀµµÄ²ÎÊýŲÓÃÅú´¦ÖÃÎļþ¡£

4.3 ͨÓý¨Òé

l  ¶¨ÆÚ¸üÐÂϵͳ²¹¶¡£¬Ï÷¼õϵͳ·ì϶£¬ÌáÉý·þÎñÆ÷µÄ°²È«ÐÔ¡£

l  ¼ÓǿϵͳºÍÍøÂçµÄ½Ó¼û½ÚÔ죬Åú¸Ä·À»ðǽսÊõ£¬¹Ø¹Ø·Ç±ØÒªµÄÀûÓö˿ڻò·þÎñ£¬Ï÷¼õ½«Î£ÏÕ·þÎñ£¨ÈçSSH¡¢RDPµÈ£©Â¶³öµ½¹«Íø£¬Ï÷¼õ¹¥»÷Ãæ¡£

l  ʹÓÃÆóÒµ¼¶°²È«²úÆ·£¬ÌáÉýÆóÒµµÄÍøÂ簲ȫ»úÄÜ¡£

l  ¼ÓǿϵͳÓû§ºÍȨÏÞÖÎÀí£¬ÆôÓöà³É·ÖÈÏÖ¤»úÔìºÍ×îÓ×ȨÏÞ×¼Ôò£¬Óû§ºÍÈí¼þȨÏÞӦά³ÖÔÚ×îµÍÏÞ¶È¡£

l  ÆôÓÃÇ¿ÃÜÂëÕ½Êõ²¢ÉèÖÃΪ¶¨ÆÚÅú¸Ä¡£

4.4 ²Î¿¼Á´½Ó

https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html

https://github.com/rust-lang/rust/security/advisories/GHSA-q455-m56c-85mh

https://flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/

https://kb.cert.org/vuls/id/123335

 

  

Îå¡¢°æ±¾ÐÅÏ¢

°æ±¾

ÈÕÆÚ

±¸×¢

V1.0

2024-04-10

³õ´Î°ä²¼

V1.1

2024-04-12

ÐÂÔö·ì϶¸´ÏÖ¡¢ÓйØCVEÐÅÏ¢¼°°æ±¾¼ì²â

 

 

Áù¡¢¸½Â¼

6.1 ±¦ÔËÀ³¹Ù·½ÍøÕ¾¼ò½é

±¦ÔËÀ³¹Ù·½ÍøÕ¾³ÉÁ¢ÓÚ1996Ä꣬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢Õ¼ÓÐÆëÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢°²È«¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢°²È«²úÆ·¡¢°²È«·þÎñ½â¾ö¹æ»®µÄÁ캽ÆóÒµÖ®Ò»¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°±¦ÔËÀ³¹Ù·½ÍøÕ¾´óÏ㬹«Ë¾Ô±¹¤6000ÓàÈË£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊÓ×¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬Õ¼Óи²¸ÇÈ«¹úµÄÏúÊÛϵͳ¡¢Çþ·ϵͳºÍ¼¼ÊõÖ§³Öϵͳ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÀö½­ÖÐÓ×°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©

¶àÄêÀ´£¬±¦ÔËÀ³¹Ù·½ÍøÕ¾ÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ£¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£

6.2 ¹ØÓÚ±¦ÔËÀ³¹Ù·½ÍøÕ¾

±¦ÔËÀ³¹Ù·½ÍøÕ¾°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÒѰ䲼1000¶à¸ö·ì϶¹«¸æÎ¢·çÏÕÔ¤¾¯£¬ÎÒÃǽ«³ÖÐø¸ú×ÙÈ«Çò×îеÄÍøÂ簲ȫÊÂÎñºÍ·ì϶£¬ÎªÆóÒµµÄÐÅÏ¢°²È«±£¼Ý»¤º½¡£

¹Ø×¢ÎÒÃÇ£º

image.png