Linux Sudo ȨÏÞÈÆ¹ýÎó²îÇ徲ͨ¸æ
Ðû²¼Ê±¼ä 2019-10-15Îó²î±àºÅºÍ¼¶±ð
CVE±àºÅ£ºCVE-2019-14287£¬£¬£¬Î£ÏÕ¼¶±ð£º¸ßΣ£¬£¬£¬CVSS·ÖÖµ£º¹Ù·½Î´ÆÀ¶¨
Ó°Ïì°æ±¾
Sudo 1.8.28֮ǰµÄËùÓа汾
Îó²î¸ÅÊö
Sudo µÄÈ«³ÆÊÇ¡°superuserdo¡±£¬£¬£¬ËüÊÇLinuxϵͳÖÎÀíÖ¸Á£¬£¬ÔÊÐíÓû§ÔÚ²»ÐèÒªÇл»ÇéÐεÄÌõ¼þÏÂÒÔÆäËüÓû§µÄȨÏÞÔËÐÐÓ¦ÓóÌÐò»òÏÂÁ£¬£¬Í¨³£ÊÇÒÔ root Óû§Éí·ÝÔËÐÐÏÂÁ£¬£¬ÒÔïÔÌ root Óû§µÄµÇ¼ºÍÖÎÀíʱ¼ä£¬£¬£¬Í¬Ê±Ìá¸ßÇå¾²ÐÔ¡£¡£¡£¡£¡£
¸ÃÎó²îÊÇ sudoÇå¾²Õ½ÂÔÈÆ¹ýÎÊÌ⣬£¬£¬¿Éµ¼Ö¶ñÒâÓû§»ò³ÌÐòÔÚÄ¿µÄ Linux ϵͳÉÏÒÔ root Éí·ÝÖ´ÐÐí§ÒâÏÂÁ£¬£¬×ÝÈ» ¡°sudoers configuration¡± Ã÷ȷեȡ¸Ã root»á¼ûȨÏÞÒ²²»ÆÆÀý¡£¡£¡£¡£¡£
ʹÓøÃÎó²îÒªÇóÓû§¾ßÓÐ sudo ȨÏÞ£¬£¬£¬´Ó¶øÒÔí§ÒâÓû§ ID ÔËÐÐÏÂÁî¡£¡£¡£¡£¡£Ò»Ñùƽ³£¶øÑÔ£¬£¬£¬ÕâÒâζ×ÅÓû§µÄ sudoers ÌõÄ¿ÔÚ Runas ¹æ·¶ÖоßÓÐÌØÊâÖµ ALL¡£¡£¡£¡£¡£Sudo Ö§³ÖÔÚ sudoers Õ½ÂÔÔÊÐíµÄÇéÐÎÏ£¬£¬£¬ÒÔÓû§Ö¸¶¨µÄÃû³Æ»òÓû§ ID ÔËÐÐÏÂÁî¡£¡£¡£¡£¡£ÀýÈ磬£¬£¬ÈçÏ sudoers ÌõÄ¿ÔÊÐí id ÏÂÁîÒÔí§ÒâÓû§Éí·ÝÔËÐУ¬£¬£¬ÓÉÓÚËü°üÀ¨ Runas ¹æ·¶ÖеÄÒªº¦×ÖALL¡£¡£¡£¡£¡£
myhost alice = (ALL) /usr/bin/id
Óû§²»µ«Äܹ»ÒÔÆäËüÕýµ±Óû§Éí·ÝÔËÐиà id ÏÂÁ£¬£¬»¹ÄÜʹÓà #uid Óï·¨ÒÔí§ÒâÓû§ ID ÔËÐиÃÏÂÁ£¬£¬ÀýÈ磺
sudo -u#1234 id -u
½«·µ»Ø1234£¬£¬£¬È»¶ø£¬£¬£¬sudo ÔÚÔËÐÐÏÂÁîǰÓû§ÐÞ¸ÄÓû§ ID µÄsetresuid(2) ºÍ setreuid(2)ϵͳŲÓý«ÌØÊâ¿´´ýÓû§ IDΪ-1£¨»òÆäδÊðÃûµÄµÈֵͬ 4294967295£©²¢ÇÒ²¢²»»áÐ޸ĸÃÖµµÄÓû§ ID¡£¡£¡£¡£¡£Òò´Ë£¬£¬£¬
sudo -u#-1 id -u
»ò
sudo -u#4294967295 id -u
ÏÖʵÉϻ᷵»Ø 0¡£¡£¡£¡£¡£ÕâÊÇÓÉÓÚ sudoÏÂÁî×Ô¼º¾ÍÒѾÒÔÓû§ ID Ϊ0 ÔËÐУ¬£¬£¬Òò´Ëµ± sudo ÊÔͼ½«Óû§ ID ÐÞ¸Ä³É -1ʱ£¬£¬£¬²»»á±¬·¢ÈκÎת±ä¡£¡£¡£¡£¡£Õâ¾Íµ¼Ö sudo ÈÕÖ¾ÌõÄ¿½«¸ÃÏÂÁ¸æÎªÒÔÓû§ ID Ϊ 4294967295¶ø·Ç root £¨»òÕßÓû§IDΪ 0£©ÔËÐÐÏÂÁî¡£¡£¡£¡£¡£±ðµÄ£¬£¬£¬ÓÉÓÚͨ¹ý¨Cu Ñ¡ÏîÖ¸¶¨µÄÓû§ ID ²¢²»±£´æÓÚÃÜÂëÊý¾Ý¿âÖУ¬£¬£¬Òò´Ë²»»áÔËÐÐÈκΠPAM »á»°Ä£¿£¿£¿£¿£¿£¿£¿é¡£¡£¡£¡£¡£
ÈôÊÇsudoers ÌõÄ¿±»Ð´ÈëÔÊÐíÓû§ÒÔ³ý root Éí·ÝÒÔÍâµÄÓû§Éí·ÝÔËÐÐÏÂÁ£¬£¬Ôò¿ÉʹÓøà bug ÈÆ¹ý¸ÃÏÞÖÆ¡£¡£¡£¡£¡£ÀýÈ磬£¬£¬¸ø¶¨ÈçÏ sudoers ÌõÄ¿£º
myhost bob = (ALL, !root) /usr/bin/vi
Óû§ bob ±»ÔÊÐíÒÔ³ýÁË rootÒÔÍâµÄÆäËüÓû§Éí·ÝÔËÐÐ vi¡£¡£¡£¡£¡£È»¶ø£¬£¬£¬ÓÉÓÚ±£´æ¸ÃÎó²î£¬£¬£¬bob ÏÖʵÉÏÄܹ»Í¨¹ýÔËÐÐ sudo ¨Cu#-1 vi µÄ·½·¨ÒÔ root Éí·ÝÔËÐÐ vi£¬£¬£¬´Ó¶øÎ¥·´ÁËÇå¾²Õ½ÂÔ¡£¡£¡£¡£¡£Ö»ÓÐRunas ¹æ·¶Öб£´æÒªº¦×Ö ALL µÄsudoers ÌõÄ¿ÊÜÓ°Ïì¡£¡£¡£¡£¡£ÀýÈ磬£¬£¬ÈçÏÂsudoers ÌõÄ¿²¢²»ÊÜÓ°Ï죺
myhost alice = /usr/bin/id
ÔÚÕâ¸öÀý×ÓÖУ¬£¬£¬alice½ö±»ÔÊÐíÒÔ rootÉí·ÝÔËÐÐ id ÏÂÁî¡£¡£¡£¡£¡£ÈκÎÒÔÆäËüÓû§Éí·ÝÔËÐиÃÏÂÁîµÄʵÑé¶¼½«Ôâ¾Ü¾ø¡£¡£¡£¡£¡£
´ËÎó²îÊÇÖÎÀíÔ±ÔÚÉèÖÃÎļþÖÐÓÃÁËALLÒªº¦´ÊºóÔì³ÉµÄ¡£¡£¡£¡£¡£µ«Ä¬ÈϵÄsudoÉèÖÃÎļþ²»ÊÜÓ°Ïì¡£¡£¡£¡£¡£
Îó²îÑéÖ¤
¸´ÏÖÇéÐΣº
µ±/etc/sudoersÎļþ±£´æÈçÏÂÐÎʽµÄÉèÖûᵼÖÂÎó²îµÄ±¬·¢£º
ÐÞ¸´½¨Òé
¹Ù·½ÒÑ¾ÍÆ³öÇå¾²¸üУ¬£¬£¬Çë¸üÐÂÖÁ1.8.28°æ±¾£ºhttps://www.sudo.ws/download.html¡£¡£¡£¡£¡£
ÒÔÏÂΪ¸÷³§É̸ø³öµÄͨ¸æ¼°½¨Ò飺
Red Hat Enterprise Linux / CentOS
https://access.redhat.com/security/cve/CVE-2019-14287
Ubuntu
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-14287.html
SUSE / openSUSE
https://www.suse.com/security/cve/CVE-2019-14287.html
²Î¿¼Á´½Ó
https://www.sudo.ws/alerts/minus_1_uid.html


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