¡¾·ì϶¹«¸æ¡¿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¶à¸ö·ì϶¹«¸æÎ¢·çÏÕÔ¤¾¯  £¬ÎÒÃǽ«³ÖÐø¸ú×ÙÈ«Çò×îеÄÍøÂ簲ȫÊÂÎñºÍ·ì϶  £¬ÎªÆóÒµµÄÐÅÏ¢°²È«±£¼Ý»¤º½¡£

¹Ø×¢ÎÒÃÇ£º

image.png