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

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

 

Ò»¡¢·ì϶¸ÅÊö

·ìϼûû³Æ

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

CVE   ID

CVE-2024-21626

·ì϶ÀàÐÍ

ÈÝÆ÷ÌÓÒÝ

·¢ÏÖ¹¦·ò

2024-02-01

·ì϶ÆÀ·Ö

8.6

·ì϶µÈ¼¶

¸ßΣ

¹¥»÷ÏòÁ¿

±¾µØ

ËùÐèȨÏÞ

ÎÞ

ÀûÓÃÄѶÈ

µÍ

Óû§½»»¥

±ØÒª

PoC/EXP

δ¹«¿ª

ÔÚÒ°ÀûÓÃ

δ·¢ÏÖ

 

2024Äê2ÔÂ1ÈÕ£¬GA»Æ½ð¼×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 GA»Æ½ð¼×¼ò½é

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

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

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

5.2 ¹ØÓÚGA»Æ½ð¼×

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

¹Ø×¢ÎÒÃÇ£º

image.png