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