¡¾Â©¶´Í¨¸æ¡¿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ƽ̨£©

×¢£ºÈç¹û´úÂë»òÒÀÀµÏî֮һʹÓò»ÊÜÐÅÈεIJÎÊýÖ´ÐÐÅú´¦ÖÃÎļþ £¬Ôò 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ÉÏʹÓò»ÊÜÐÅÈεIJÎÊýµ÷ÓÃÅú´¦ÖÃÎļþ¡£

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