close

  剛剛莫名其妙的接收到一個指令說Linux sudo 指令因為被發現有安全漏洞所以被安全部門要求要緊急升級sudo 指令包( rpm package),壓根來使用 Linux 都沒遇到過要update sudo的狀況,這還是頭一回,只是剛聽到時是有點雲裡霧裡的,摸不著是什麼情況。

  簡單說這個漏洞是Qualys的研究人員發現的,屬於sudo的堆積緩衝溢位漏洞,漏洞編號是CVE-2021-3156。它在本機用戶傳送sudoedit -s及以單反斜線(\)結尾的指令行參數開採,任何本機使用者在未經驗證(即無需知道密碼)的情況下都能輕易完成。成功開採可造成權限擴張,無權限的本機用戶因此取得主機根權限,可能危及資料隱私或導致系統被變更或無法使用。

  手動檢查自己的Linux機器是否有這個漏洞的方式是用非root account 下已下指令: $ sudoedit -s /

  如果返回結果是:”not a regular file” ,那就代表需要update 你的 sudo rpm 版本 1.9.5p2 以上的版本 才能修復這個CVE-2021-3156權限提升漏洞。

 

image

檢測sudo 漏洞

 

  既然有漏洞就要動手修正拉,有兩種方式,一種是透過 $ yum update -y sudo 作更新,但我試過在 centos 6好像不起作用,所以就採用另一個方式,直接抓官方最新更新的rpm for sudo of centos 6來強制更新sudo package

  但這一個就比較複雜一點,首先要到最新 sudo package 的網站找到 更新的 centos 6 for sudo package url,存放各版本Linux修正漏洞package url的網頁是: https://www.sudo.ws/download.html

 

image

在 sudo download page 下載對應新版sudo rpm package

 

  按右鍵複製該sudo-1.9.5-3.el6.x86_64.rpm網址,然後回到Linux wget 指令下載rpm : $ wget https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo-1.9.5-3.el6.x86_64.rpm

  下載完成後,再用root權限(是的,還是要sudo su),接著就是安裝該rpm: $ rpm -Uvh sudo-1.9.5-3.el6.x86_64.rpm

  安裝完成後,再用 rpm -qa 的方式檢查一下 sudo rpm 版本是否已經是1.9.5-3的版本 : $ rpm -qa | grep sudo

image

 

更新rpm並確認是否升級成功

 

  最後再回到一般非root account狀態下一次 $ sudoedit -s / 指令,出現以下訊息就代表漏洞成功修復了: ‘usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ...

image

 

漏洞修復成功

 

[Reference]

  1. 存在近十年的Linux Sudo漏洞,可讓任何本機使用者取得執行根權限 https://www.ithome.com.tw/news/142469
  2. Linux sudo权限提升漏洞(CVE-2021-3156[附检测及修复方法] https://vulsee.com/archives/vulsee_2021/0127_13733.html
  3. RPM 安裝/更新/移除套件指令 https://www.opencli.com/linux/rpm-install-update-remove-package

2021129日星期五

arrow
arrow

    jackterrylau 發表在 痞客邦 留言(0) 人氣()