¡¾Â©¶´Í¨¸æ¡¿runcÈÝÆ÷ÌÓÒÝ©¶´£¨CVE-2024-21626£©

Ðû²¼Ê±¼ä 2024-02-02

 

Ò»¡¢Â©¶´¸ÅÊö

©¶´Ãû³Æ

 runcÈÝÆ÷ÌÓÒÝ©¶´

CVE   ID

CVE-2024-21626

©¶´ÀàÐÍ

ÈÝÆ÷ÌÓÒÝ

·¢ÏÖʱ¼ä

2024-02-01

©¶´ÆÀ·Ö

8.6

©¶´Æ·¼¶

¸ßΣ

¹¥»÷ÏòÁ¿

µ±µØ

ËùÐèȨÏÞ

ÎÞ

ÀûÓÃÄѶÈ

µÍ

Óû§½»»¥

ÐèÒª

PoC/EXP

δ¹ûÈ»

ÔÚÒ°ÀûÓÃ

δ·¢ÏÖ

 

2024Äê2ÔÂ1ÈÕ£¬¶¶È¦Îª¶Ä¶øÉúVSRC¼à²âµ½»¥ÁªÍøÉÏÅû¶¶à¸öºËÐÄÈÝÆ÷»ù´¡ÉèÊ©×é¼þÖз¢ÏÖÁË4¸ö©¶´£¨CVE-2024-21626¡¢CVE-2024-23651¡¢CVE-2024-23652 ºÍ CVE-2024-23653£©£¬ÕâЩ©¶´±»³ÆΪLeaky Vessels£¬Ó°ÏìÁËRuncºÍBuildKit£¬ÍþвÕß¿ÉÀûÓÃÕâЩ©¶´»ñµÃ¶Ôµ×²ãÖ÷»ú²Ù×÷ϵͳµÄδÊÚȨ·ÃÎÊ¡£

runc ÊÇÒ»ÖÖ CLI ¹¤¾ß£¬ÓÃÓÚƾ¾Ý OCI ¹æ·¶ÔÚ Linux ÉÏÉú³ÉºÍÔËÐÐÈÝÆ÷¡£runcµÄʹÓ÷dz£Áé»î£¬¿ÉÒÔÓëÖÖÖÖÈÝÆ÷¹¤¾ßºÍƽ̨¼¯³É£¬ÈçDocker¡¢KubernetesµÈ¡£ÆäÖÐCVE-2024-21626Éæ¼°runc£¬runc 1.1.11¼°Ö®Ç°°æ±¾ÖУ¬ÓÉÓÚÄÚ²¿ÎļþÃèÊö·ûй©£¬µ±µØÍþвÕß¿ÉÒÔͨ¹ý¶àÖÖ·½Ê½ÊµÏÖÈÝÆ÷ÌÓÒÝ£ºÍþвÕß¿ÉÒÔͨ¹ýʹÐÂÉú³ÉµÄÈÝÆ÷½ø³Ì£¨À´×Ôrunc exec£©ÔÚÖ÷»úÎļþϵͳÃüÃû¿Õ¼äÖÐÓµÓÐÒ»¸öÊÂÇéĿ¼£¬»òÓÕʹÌØȨÓû§ÔËÐжñÒâ¾µÏñ²¢ÔÊÐíÈÝÆ÷½ø³Ìͨ¹ý runc run ·ÃÎÊÖ÷»úÎļþϵͳ£¬´Ó¶ø»ñµÃ¶ÔÖ÷»úÎļþϵͳµÄ·ÃÎÊȨÏÞ¡£ÕâЩ¹¥»÷»¹¿ÉÓÃÓÚÁýÕÖ°ëÈÎÒâÖ÷»ú¶þ½øÖÆÎļþ£¬´Ó¶øʵÏÖÈÝÆ÷ÌÓÒÝ¡£

BuildKit ÊÇDocker¹Ù·½ÉçÇøÍƳöµÄÏÂÒ»´ú¾µÏñ¹¹½¨×é¼þ£¬¿ÉÒÔÔ½·¢¿ìËÙ¡¢ÓÐЧ¡¢Äþ¾²µØ¹¹½¨docker ¾µÏñ¡£MobyÊÇDocker´´½¨µÄÒ»¸ö¿ªÔ´ÏîÄ¿£¬Ö¼ÔÚʵÏÖÈí¼þÈÝÆ÷»¯¡£BuildKiºÍMobyÖл¹´æÔÚÈç϶à¸ö©¶´£º

CVE-2024-23651£º¸Ã©¶´µÄCVSSÆÀ·ÖΪ8.7£¬ÔÚ BuildKit <= v0.12.4 ÖУ¬²¢ÐÐÔËÐеÄÁ½¸ö¶ñÒâ¹¹½¨²½ÖèÓë×Ó·¾¶¹²ÏíÏàͬµÄ»º´æ¹ÒÔØ¿ÉÄܻᵼÖ¾ºÕùÌõ¼þ£¬´Ó¶øµ¼Ö¹¹½¨ÈÝÆ÷¿ÉÒÔ·ÃÎÊÖ÷»úϵͳÖеÄÎļþ¡£Ö»Óе±Óû§ÊÔͼ¹¹½¨¶ñÒâÏîÄ¿µÄDockerfileʱ£¬²Å»á·¢ÉúÕâÖÖÇé¿ö¡£

CVE-2024-23652£º¸Ã©¶´µÄCVSSÆÀ·ÖΪ10.0£¬ÔÚ BuildKit <= v0.12.4 ÖУ¬Ê¹Óà RUN --mount µÄ¶ñÒâ BuildKit Ç°¶Ë»ò Dockerfile ¿ÉÄÜ»áÆÛƭɾ³ýΪ¹ÒÔص㴴½¨µÄ¿ÕÎļþµÄ¹¦Ð§£¬´Ó¶ø´ÓÖ÷»úϵͳÖÐɾ³ýÈÝÆ÷ÍâµÄÎļþ¡£Ö»Óе±Óû§Ê¹ÓöñÒâ Dockerfile ʱ²Å»á·¢ÉúÕâÖÖÇé¿ö¡£

CVE-2024-23653£º¸Ã©¶´µÄCVSSÆÀ·ÖΪ9.8¡£³ýÁË×÷Ϊ¹¹½¨²½ÖèÔËÐÐÈÝÆ÷Í⣬BuildKit »¹ÌṩÁË»ùÓÚ¹¹½¨¾µÏñÔËÐн»»¥Ê½ÈÝÆ÷µÄ API¡£ÔÚ BuildKit <= v0.12.4 ÖУ¬¿ÉÒÔʹÓÃÕâЩ API À´ÒªÇó BuildKit ÒÔÌáÉýµÄȨÏÞÔËÐÐÈÝÆ÷¡£Í¨³££¬Ö»ÓÐÔÚ buildkitd ÅäÖÃÆôÓÃÁË security.insecure ȨÏÞ£¬¶øÇÒ³õʼ»¯¹¹½¨ÇëÇóµÄÓû§ÔÊÐíµÄÇé¿öÏ£¬²ÅÔÊÐíÔËÐдËÀàÈÝÆ÷¡£

CVE-2024-23650£¨ÖÐΣ£©£ºÔÚ BuildKit <= v0.12.4 ÖУ¬¶ñÒâ BuildKit ¿Í»§¶Ë»òÇ°¶Ë¿ÉÖÆ×÷Ò»¸öÇëÇ󣬵¼Ö BuildKit ÊØ»¤½ø³ÌÒò¿Ö»Å¶øÍ߽⡣

CVE-2024-24557£¨ÖÐΣ£©£ºÔÚ Moby <= v25.0.1 ºÍ <= v24.0.8 ÖУ¬Èç¹û¾µÏñÊÇÖØй¹½¨µÄ£¬¾­µäµÄ¹¹½¨Æ÷»º´æϵͳºÜÈÝÒ×·ºÆ𻺴æÖж¾¡£

 

¶þ¡¢Ó°Ï췶Χ

Runc <= 1.1.11

BuildKit <= 0.12.4

Moby (Docker Engine)<= 25.0.1 ºÍ<= 24.0.8

Docker Desktop <= 4.27.0

Containerd < 1.6.28

 

 

Èý¡¢Äþ¾²´ëÊ©

3.1 Éý¼¶°æ±¾

Ä¿Ç°²¿ÃÅÈÝÆ÷»ù´¡ÉèÊ©ÖÐÒѾ­ÐÞ¸´ÁËÕâЩ©¶´£¬ÊÜÓ°ÏìÓû§¿ÉÉý¼¶µ½ÒÔÏ°汾£º

Runc >= 1.1.12

BuildKit >= 0.12.5

Moby (Docker Engine) >= 25.0.2 ºÍ >= 24.0.9

Docker Desktop >= 4.27.1

Containerd >= 1.6.28

ÏÂÔØÁ´½Ó£º

https://snyk.io/blog/leaky-vessels-docker-runc-container-breakout-vulnerabilities/

3.2 ÁÙʱ´ëÊ©

ÈçÎÞ·¨Éý¼¶µ½ÐÞ¸´°æ±¾£¬¿É×ñÑ­ÒÔÏÂ×î¼Ñʵ¼ùÀ´½µµÍ·çÏÕ£º

l  ½öʹÓÃÊÜÐÅÈ뵀 Docker ¾µÏñ£¨ÀýÈçDocker ¹Ù·½¾µÏñ£©¡£

l  ²»Òª´Ó²»ÊÜÐÅÈεÄÀ´Ô´»ò²»ÊÜÐÅÈ뵀 Dockerfile ¹¹½¨ Docker ¾µÏñ¡£

l  Èç¹ûÊÇʹÓà Docker Desktop µÄ Docker Business ¿Í»§£¬¶øÇÒÎÞ·¨ÔÚ v4.27.1 Ðû²¼ºóÁ¢¼´¸üе½¸Ã°æ±¾£¬ÇëÈ·±£ÆôÓà Hardened Docker Desktop ¹¦Ð§£¬ÀýÈ磺

¨¹  ÔöÇ¿µÄÈÝÆ÷¸ôÀ루Enhanced Container Isolation£©£¬¿ÉÔÚ´Ó¶ñÒâ¾µÏñÔËÐÐÈÝÆ÷µÄÇé¿öϼõÇáCVE-2024-21626µÄÓ°Ïì¡£

¨¹  ¾µÏñ·ÃÎʹÜÀíºÍ×¢²á±í·ÃÎʹÜÀí£¬¿ÉÈÃÆóÒµ¿ØÖÆÓû§¿ÉÒÔ·ÃÎÊÄÄЩ¾µÏñºÍ´æ´¢¿â¡£

l  ¶ÔÓÚ CVE-2024-23650¡¢CVE-2024-23651¡¢CVE-2024-23652 ºÍ CVE-2024-23653£¬ÇëÖÆֹʹÓÃÀ´×Ô²»ÊÜÐÅÈÎÀ´Ô´µÄBuildKit Ç°¶Ë¡£Ç°¶Ë¾µÏñͨ³£ÔÚ Dockerfile µÄ #syntax ÐÐÖÐÖ¸¶¨£¬»òÔÚʹÓà buildctl build ÃüÁîʱʹÓà --frontend ±êÖ¾Ö¸¶¨¡£

l  Òª»º½â CVE-2024-24557 µÄÓ°Ï죬ÇëÈ·±£ÔÚ¹¹½¨¾µÏñʱʹÓà BuildKit »ò½ûÓûº´æ¡£


3.3 ͨÓý¨Òé

l  ¶¨ÆÚ¸üÐÂϵͳ²¹¶¡£¬¼õÉÙϵͳ©¶´£¬ÌáÉý·þÎñÆ÷µÄÄþ¾²ÐÔ¡£

l  ¼ÓǿϵͳºÍÍøÂçµÄ·ÃÎÊ¿ØÖÆ£¬Ð޸ķÀ»ðǽ¼Æı£¬¹Ø±Õ·ÇÐëÒªµÄÓ¦Óö˿ڻò·þÎñ£¬¼õÉÙ½«Î£ÏÕ·þÎñ£¨ÈçSSH¡¢RDPµÈ£©Ì»Â¶µ½¹«Íø£¬¼õÉÙ¹¥»÷Ãæ¡£

l  ʹÓÃÆóÒµ¼¶Äþ¾²²úÎÌáÉýÆóÒµµÄÍøÂçÄþ¾²ÐÔÄÜ¡£

l  ¼ÓǿϵͳÓû§ºÍȨÏÞ¹ÜÀí£¬ÆôÓöàÒòËØÈÏÖ¤»úÖƺÍ×îСȨÏÞÔ­Ôò£¬Óû§ºÍÈí¼þȨÏÞÓ¦±£³ÖÔÚ×îµÍÏ޶ȡ£

l  ÆôÓÃÇ¿ÃÜÂë¼Æı²¢ÉèÖÃΪ¶¨ÆÚÐ޸ġ£

3.4 ²Î¿¼Á´½Ó

https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv

https://snyk.io/blog/leaky-vessels-docker-runc-container-breakout-vulnerabilities/

https://snyk.io/blog/cve-2024-21626-runc-process-cwd-container-breakout/

https://www.docker.com/blog/docker-security-advisory-multiple-vulnerabilities-in-runc-buildkit-and-moby/

 


ËÄ¡¢°æ±¾ÐÅÏ¢

°æ±¾

ÈÕÆÚ

±¸×¢

V1.0

2024-02-02

Ê×´ÎÐû²¼

 


Îå¡¢¸½Â¼

5.1 ¶¶È¦Îª¶Ä¶øÉú¼ò½é

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

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

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

5.2 ¹ØÓÚ¶¶È¦Îª¶Ä¶øÉú

¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÒÑÐû²¼1000¶à¸ö©¶´Í¨¸æºÍ·çÏÕÔ¤¾¯£¬ÎÒÃǽ«Á¬Ðø¸ú×ÙÈ«Çò×îеÄÍøÂçÄþ¾²Ê¼þºÍ©¶´£¬ÎªÆóÒµµÄÐÅÏ¢Äþ¾²±£¼Ý»¤º½¡£

¹Ø×¢ÎÒÃÇ£º

image.png