¡¾·ì϶¹«¸æ¡¿runcÈÝÆ÷ÌÓÒÝ·ì϶£¨CVE-2024-21626£©

°ä²¼¹¦·ò 2024-02-02

 

Ò»¡¢·ì϶¸ÅÊö

·ìϼûû³Æ

 runcÈÝÆ÷ÌÓÒÝ·ì϶

CVE   ID

CVE-2024-21626

·ì϶ÀàÐÍ

ÈÝÆ÷ÌÓÒÝ

·¢ÏÖ¹¦·ò

2024-02-01

·ì϶ÆÀ·Ö

8.6

·ì϶µÈ¼¶

¸ßΣ

¹¥»÷ÏòÁ¿

±¾µØ

ËùÐèȨÏÞ

ÎÞ

ÀûÓÃÄѶÈ

µÍ

Óû§½»»¥

±ØÒª

PoC/EXP

δ¹«¿ª

ÔÚÒ°ÀûÓÃ

δ·¢ÏÖ

 

2024Äê2ÔÂ1ÈÕ£¬£¬£¬ £¬£¬£¬8827Ì«Ñô¼¯ÍÅ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 8827Ì«Ñô¼¯Íżò½é

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

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

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

5.2 ¹ØÓÚ8827Ì«Ñô¼¯ÍÅ

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

¹Ø×¢ÎÒÃÇ£º

image.png