runcÈÝÆ÷ÌÓÒÝ·ì϶°²È«¹«¸æ

°ä²¼¹¦·ò 2019-02-13

·ì϶±àºÅºÍ¼¶±ð


CVE±àºÅ£ºCVE-2019-5736£¬Î£ÏÕ¼¶±ð£ºÑϳÁ£¬ CVSS·ÖÖµ£º¹Ù·½Î´ÆÀ¶¨


Ó°ÏìÁìÓò


ÊÜÓ°Ïì°æ±¾£º 

runC È«°æ±¾

LXC ÒÔ¼° Apache Mesos


·ì϶¸ÅÊö


    runcÊÇÒ»¸öƾ¾ÝOCI(Open Container Initiative)³ß¶È´´½¨²¢ÔËÐÐÈÝÆ÷µÄCLI tool ¡£Ä¿Ç°dockerÒýÇæÄÚ²¿Ò²ÊÇ»ùÓÚrunc¹¹½¨µÄ ¡£2019Äê2ÔÂ11ÈÕ£¬×êÑÐÈËԱͨ¹ýoss-securityÓʼþÁбíÅû¶ÁËruncÈÝÆ÷ÌÓÒÝ·ì϶µÄÏêÇ飬·ì϶¿ÉÄÜÓ°Ïì¿í´óÔÆ·þÎñ³§ÉÌ£¬·çÏÕÑϳÁ ¡£


    ¸Ã·ì϶ÔÊÐí¶ñÒâÈÝÆ÷ÒÔÖÁÉÙµÄÓû§½»»¥¸²¸ÇËÞÖ÷»úÉϵÄrunCÎļþ£¬´Ó¶øÔÚËÞÖ÷»úÉÏÒÔ root ȨÏÞÖ´ÐжñÒâ´úÂë ¡£µ±Âú×ãÒÔÏÂǰÌáʱ£¬¹¥»÷ÕßÓпÉÄÜÒÔrootȨÏÞÖ´ÐÐËÁÒâ´úÂ룺


1. ʹÓù¥»÷Õß½ÚÔìµÄ¾µÏñ´´½¨ÐÂÈÝÆ÷£¬»òÕß¹¥»÷ÕßÓµÓÐijһdockerÈÝÆ÷µÄrootȨÏÞ


2. ¹¥»÷ÕßÄܹ»Ê¹ÓÃdocker exec·½Ê½½øÈëÉÏÊöÈÝÆ÷


    ĬÈϵÄAppArmorÕ½Êõ²»ÄÜ×èÖ¹¸Ã·ì϶ ¡£Í¬ÑùÔÚFedoraÉÏ£¬Ä¬ÈϵÄSELinuxÕ½ÊõÒ²²»ÄÜ×èÖ¹¸Ã·ì϶ ¡££¨ÓÉÓÚÈÝÆ÷¹ý³ÌÊÇÒÔcontainer_runtime_tÔËÐеģ© ¡£µ«ÊÇÄܹ»Í¨¹ýÕýȷʹÓö¨Ãû¿Õ¼äµÄ·½Ê½×èÖ¹´Ë·ì϶£¨²»ÈÃËÞÖ÷»úµÄrootÓ³Éäµ½ÈÝÆ÷µÄ¶¨Ãû¿Õ¼äÖУ© ¡£


    ÉÏÊöÄÚÈÝÖ»³Ê´Ë¿Ì Fedora µÄ¡°moby-engine¡±Èí¼þ°üÖÐ ¡£ÆäËûµÄdockerÈí¼þ°üÒÔ¼° podman²»»áÊܵ½´Ë·ì϶µÄÓ°Ïì ¡£ÓÉÓÚËûÃǵÄÈÝÆ÷¹ý³ÌÊÇÒÔcontainer_tÔËÐеÄ ¡£


·ì϶ϸ½Ú


¹¥»÷ÕßÄܹ»½«ÈÝÆ÷ÖеÄÖ¸±êÎļþ´úÌæ³ÉÖ¸ÏòruncµÄ×Ô¼ºµÄÎļþÀ´ºýŪruncÖ´ÐÐ×Ô¼º ¡£ºÃ±ÈÖ¸±êÎļþÊÇ/bin/bash£¬½«Ëü´úÌæ³ÉÖ¸¶¨Ú¹ÊÍÆ÷õ辶Ϊ#!/proc/self/exeµÄ¿ÉÖ´Ðо籾£¬ÔÚÈÝÆ÷ÖÐÖ´ÐÐ/bin/bashʱ½«Ö´ÐÐ/proc/self/exe£¬ËüÖ¸ÏòhostÉϵÄruncÎļþ ¡£¶øºó¹¥»÷ÕßÄܹ»³ÖÐøÐ´Èë/proc/self/exeÊÔͼ¸²¸ÇhostÉϵÄruncÎļþ ¡£µ«ÊÇͨ³£À´Ëµ²»»á³É¹¦£¬ÓÉÓÚÄں˲»ÔÊÐíÔÚÖ´ÐÐruncʱ¸²¸ÇËü ¡£ÎªÏàʶ¾öÕâ¸öÎÊÌ⣬¹¥»÷ÕßÄܹ»Ê¹ÓÃO_PATH±êÖ¾´ò¿ª/proc/self/exeµÄÎļþÃèÊö·û£¬¶øºóͨ¹ý/proc/self/fd/<nr>ʹÓÃO_WRONLY±êÖ¾³Áдò¿ªÎļþ£¬²¢³¢ÊÔÔÚÒ»¸öÑ­»·ÖдÓÒ»¸öµ¥¶ÀµÄ¹ý³ÌдÈë¸ÃÎļþ ¡£µ±runcÍ˳öʱ¸²¸Ç»á³É¹¦£¬ÔÚ´ËÖ®ºó£¬runcÄܹ»ÓÃÀ´¹¥»÷ÆäËüÈÝÆ÷»òhost ¡£


·ì϶ÀûÓÃ


·ì϶POCÒѹ«¿ª£ºhttps://github.com/q3k/cve-2019-5736-poc ¡£


½¨¸´½¨Òé


¸üРrunC¡¢LXC ÖÁ¹Ù·½°ä²¼µÄ×îв¹¶¡ ¡£


²Î¿¼Á´½Ó


https://www.openwall.com/lists/oss-security/2019/02/11/2