¡¾Îó²îͨ¸æ¡¿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µÄʹÓúÜÊÇÎÞа£¬£¬£¬£¬£¬¿ÉÒÔÓëÖÖÖÖÈÝÆ÷¹¤¾ßÇ徲̨¼¯³É£¬£¬£¬£¬£¬Èç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¶à¸öÎó²îͨ¸æºÍΣº¦Ô¤¾¯£¬£¬£¬£¬£¬ÎÒÃǽ«Ò»Á¬¸ú×ÙÈ«Çò×îеÄÍøÂçÇå¾²ÊÂÎñºÍÎó²î£¬£¬£¬£¬£¬ÎªÆóÒµµÄÐÅÏ¢Çå¾²±£¼Ý»¤º½¡£¡£¡£¡£¡£¡£
¹Ø×¢ÎÒÃÇ£º



¾©¹«Íø°²±¸11010802024551ºÅ