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


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