¡¾Ç徲ͨ¸æ¡¿Linux?sudoȨÏÞÌáÉýÎó²î£¨CVE-2021-3156£©Í¨¸æ
2021-01-27
Ò». Îó²î¸ÅÊö
1ÔÂ26ÈÕ£¬SudoÐû²¼Ç徲ͨ¸æ£¬ÐÞ¸´ÁËÒ»¸öÀàUnix²Ù×÷ϵͳÔÚÏÂÁî²ÎÊýÖÐתÒ巴б¸Üʱ±£´æ»ùÓڶѵĻº³åÇøÒç³öÎó²î¡£µ±sudoͨ¹ý-s»ò-iÏÂÁîÐÐÑ¡ÏîÔÚshellģʽÏÂÔËÐÐÏÂÁîʱ£¬Ëü½«ÔÚÏÂÁî²ÎÊýÖÐʹÓ÷´Ð±¸ÜתÒåÌØÊâ×Ö·û¡£µ«Ê¹ÓÃ-s»ò -i±ê¼ÇÔËÐÐsudoeditʱ£¬ÏÖʵÉϲ¢Î´¾ÙÐÐתÒ壬´Ó¶ø¿ÉÄܵ¼Ö»º³åÇøÒç³ö¡£Ö»Òª±£´æsudoersÎļþ£¨Í¨³£ÊÇ /etc/sudoers£©£¬¹¥»÷Õ߾ͿÉÒÔʹÓÃÍâµØÍ¨Ë×Óû§Ê¹ÓÃsudo»ñµÃϵͳrootȨÏÞ¡£ÏÖÔÚÎó²îϸ½ÚÒѹûÕæ£¬ÇëÊÜÓ°ÏìµÄÓû§¾¡¿ì½ÓÄɲ½·¥¾ÙÐзÀ»¤¡£
²Î¿¼Á´½Ó£º
https://www.sudo.ws/alerts/unescape_overflow.html
https://access.redhat.com/security/vulnerabilities/RHSB-2021-002
¶þ. Ó°Ïì¹æÄ£
ÊÜÓ°Ïì°æ±¾
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1
²»ÊÜÓ°Ïì°æ±¾
sudo =>1.9.5p2
Èý. Îó²î¼ì²â
3.1 È˹¤¼ì²â
Óû§¿ÉÒÔʹÓ÷ÇrootµÄÕË»§µÇ¼ϵͳ£¬ÔËÐГ sudoedit -s / ”ÏÂÁ

Èô·µ»ØÈçͼÒÔ“ sudoedit£º”¿ªÍ·µÄ¹ýʧ£¬ÔòÄ¿½ñϵͳ¿ÉÄܱ£´æÇ徲Σº¦¡£
²»ÊÜÓ°ÏìµÄϵͳ½«ÏÔʾÒÔ“ usage£º”¿ªÍ·µÄ¹ýʧÏìÓ¦¡£
ËÄ. Îó²î·À»¤
4.1 ¹Ù·½Éý¼¶
ÏÖÔÚ¹Ù·½ÒÑÔÚsudoа汾1.9.5p2ÖÐÐÞ¸´Á˸ÃÎó²î£¬ÇëÊÜÓ°ÏìµÄÓû§¾¡¿ìÉý¼¶°æ±¾¾ÙÐзÀ»¤£¬¹Ù·½ÏÂÔØÁ´½Ó£ºhttps://www.sudo.ws/download.html
×¢£º½¨ÒéÓû§ÔÚÉý¼¶Ç°×öºÃÊý¾Ý±¸·ÝÊÂÇ飬×èÖ¹·ºÆðÒâÍâ
4.2 ÔÝʱ·À»¤²½·¥
ÈôRed HatÏà¹ØÓû§ÔÝʱÎÞ·¨¾ÙÐÐÉý¼¶²Ù×÷£¬¿ÉʹÓÃsystemtap¾ÙÐÐÒÔÏÂÔÝʱ»º½â£º
1. ×°ÖÃËùÐèµÄsystemtapÈí¼þ°üºÍÒÀÀµÏ
|
systemtap yum-utils kernel-devel-"$(uname -r)" |
RHEL 7£ºÊ¹ÓÃÏÂÁî×°Öà kernel debuginfo£ºdebuginfo-install -y kernel-"$(uname -r)"¡£
RHEL 8£ºÊ¹ÓÃÏÂÁî×°Öà sudo debuginfo£ºdebuginfo-install sudo¡£
2. ½¨ÉèÒÔÏÂsystemtap¾ç±¾£¨½«ÎļþÃüÃûΪsudoedit-block.stap£©:
|
probe process("/usr/bin/sudo").function("main") { command = cmdline_args(0,0,""); if (strpos(command, "edit") >= 0) { raise(9); } } |
3. ʹÓÃÒÔÏÂÏÂÁî×°Öþ籾£º£¨Ê¹ÓÃrootȨÏÞ£©
|
# nohup stap -g sudoedit-block.stap & |
¸Ã¾ç±¾½«Ê¹µÃÒ×Êܹ¥»÷µÄsudoedit¶þ½øÖÆÎļþ×èÖ¹ÊÂÇé¡£ sudoÏÂÁîÈÔ½«ÕÕ³£Ö´ÐС£
×¢£ºÉÏÊö¸ü¸ÄÔÚÖØÆôºóʧЧ£¬±ØÐèÔÚÿ´ÎÖØÆôºóÖØÐÂÓ¦Óá£
4. Ò»µ©×°ÖÃÁ˲¹¶¡³ÌÐò£¬¾Í¿ÉÒÔͨ¹ý×÷·ÏsystemtapÀú³ÌÀ´É¾³ýsystemtap¾ç±¾¡£ ÀýÈ磬ͨ¹ýʹÓÃÒÔÏÂÏÂÁÆäÖÐ7590ÊÇsystemtapÀú³ÌµÄPID£©£º
|
# kill -s SIGTERM 7590 |
ÉùÃ÷
±¾Ç徲ͨ¸æ½öÓÃÀ´ÐÎò¿ÉÄܱ£´æµÄÇå¾²ÎÊÌ⣬AG¹«Ë¾¿Æ¼¼²»Îª´ËÇ徲ͨ¸æÌṩÈκΰü¹Ü»òÔÊÐí¡£ÓÉÓÚÈö²¥¡¢Ê¹ÓôËÇ徲ͨ¸æËùÌṩµÄÐÅÏ¢¶øÔì³ÉµÄÈκÎÖ±½Ó»òÕß¼ä½ÓµÄЧ¹û¼°Ëðʧ£¬¾ùÓÉʹÓÃÕß×Ô¼ºÈÏÕæ£¬AG¹«Ë¾¿Æ¼¼ÒÔ¼°Ç徲ͨ¸æ×÷Õß²»Îª´Ë¼ç¸ºÈκÎÔðÈΡ£
AG¹«Ë¾¿Æ¼¼ÓµÓжԴËÇ徲ͨ¸æµÄÐÞ¸ÄÏ¢ÕùÊÍȨ¡£ÈçÓû×ªÔØ»òÈö²¥´ËÇ徲ͨ¸æ£¬±ØÐè°ü¹Ü´ËÇ徲ͨ¸æµÄÍêÕûÐÔ£¬°üÀ¨°æÈ¨ÉùÃ÷µÈËùÓÐÄÚÈÝ¡£Î´¾AG¹«Ë¾¿Æ¼¼ÔÊÐí£¬²»µÃí§ÒâÐ޸ĻòÕßÔö¼õ´ËÇ徲ͨ¸æÄÚÈÝ£¬²»µÃÒÔÈκη½·¨½«ÆäÓÃÓÚÉÌҵĿµÄ¡£

AG¹«Ë¾ÔÆ







