一種以 ny 身份登錄的非特權用戶可以利用舊的錯誤 sudo 來獲得 root 特權。這被認為是 Linux 和類 Unix 操作系統的主要安全問題。 Qualys 研究團隊發現 sudo 本身存在隱藏的堆溢出漏洞 過去的10年並不引人注目. 這個錯誤導致 本地用戶無需身份驗證即可獲得 root 訪問權限 (不需要用戶密碼)。操作系統應盡快修補。
系統管理員使用 sudo 命令向特定用戶授予權限。例如,出於服務器管理目的重新啟動 Nginx,或重新啟動 Apache 服務器。 Ansible 等 IT 自動化工具也大量使用 sudo。
致命錯誤 sudo 使 Linux 和 Unix 系統處於危險之中
有兩個嚴重的 sudo 漏洞。
- 發現 sudo 解析命令行時內存處理不當。本地攻擊者可以利用此問題意外訪問管理員帳戶。 (CVE-2021-3156)
- 發現 sudo sudoedit 實用程序錯誤地處理目錄權限檢查。本地攻擊者可以利用此問題繞過文件權限並確定目錄的存在。 (CVE-2021-23239)
CVE-2021-3156:sudo 中基於堆的緩衝區溢出 (Baron Samedit)
從 博文:
Sudo 是一個強大的實用程序,包含在大多數(如果不是全部)基於 Unix 和 Linux 的操作系統中。一個用戶可以使用另一個用戶的安全權限運行程序。該漏洞本身被隱藏了近十年。這是在 2011 年 7 月引入的(提交 8255ed69),在默認配置中會影響從 1.8.2 到 1.8.31p2 的所有舊版本以及從 1.9.0 到 1.9.5p1 的所有穩定版本。
成功利用此漏洞可能允許非特權用戶在易受攻擊的主機上獲得 root 特權。 Qualys 安全研究人員已經獨立驗證了該漏洞,並能夠開發多種利用變體,可在 Ubuntu 20.04 (Sudo 1.8.31)、Debian 10 (Sudo 1.8.27) 和 Fedora 33 (Sudo 1.9 .2) 上使用。也可以利用其他操作系統和發行版。
減輕
可以通過將系統更新到以下軟件包版本來解決此問題:
Ubuntu 和 Debian Linux
Ubuntu版本應該打補丁 16.04/18.04/20.04 LTS 和 20.10 使用 apt/apt-get 命令:sudo apt update
sudo apt upgrade
## or just install sudo upgrade ##
sudo apt install sudo
sudo --version
對於穩定的 Debian 發行版(buster)這個問題
已經修好了
版本 1.8.27-1+deb10u3。所以你也可以在 Debian 上運行上述命令。
拱 linux
打開終端應用程序並運行以下 pacman 命令:sudo pacman -Syu
:: Synchronizing package databases... core 134.3 KiB 163 KiB/s 00:01 [#####################] 100% extra 1650.4 KiB 2.07 MiB/s 00:01 [#####################] 100% community 5.3 MiB 8.55 MiB/s 00:01 [#####################] 100% :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Packages (17) audit-3.0-1 bpytop-1.0.60-1 ca-certificates-mozilla-3.61-1 filesystem-2021.01.19-1 gnupg-2.2.27-1 go-2:1.15.7-1 iptables-1:1.8.7-1 krb5-1.18.3-1 libcap-2.47-1 libgcrypt-1.9.0-2 libnftnl-1.1.9-1 pam-1.5.1-1 sqlite-3.34.1-1 sudo-1.9.5.p2-1 tar-1.33-1 tzdata-2021a-1 zstd-1.4.8-1 Total Download Size: 138.39 MiB Total Installed Size: 604.42 MiB Net Upgrade Size: -0.05 MiB :: Proceed with installation? [Y/n]
Red Hat Enterprise Linux 8.x/7.x、CentOS 和 Fedora Linux
輸入dnf或yum命令修復錯誤 RHEL 7.x/8.x 和 Fedora Linux:sudo dnf update
Suse 和 OpenSUSE Linux
SUSE 企業版 Linux 版本 12.x 什麼時候 15.x 是的 也受到影響。例如,您可以使用 zypper 命令。sudo zypper lp -a | grep -i sudo
sudo zypper up
自由BSD
我還沒有測試過,但你應該通過運行以下 pkg 命令來更新 FreeBSD 端口或 pkg:sudo pkg update
sudo pkg upgrade
Updating FreeBSD repository catalogue... Fetching packagesite.txz: 100% 6 MiB 3.2MB/s 00:02 Processing entries: 100% FreeBSD repository update completed. 30177 packages processed. All repositories are up to date. [[email protected] ~]# pkg upgrade Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. Checking for upgrades (1 candidates): 100% Processing candidates (1 candidates): 100% The following 1 package(s) will be affected (of 0 checked): Installed packages to be UPGRADED: sudo: 1.9.5p1 -> 1.9.5p2 Number of packages to be upgraded: 1 942 KiB to be downloaded. Proceed with this action? [y/N]: y [1/1] Fetching sudo-1.9.5p2.txz: 100% 942 KiB 964.4kB/s 00:01 Checking integrity... done (0 conflicting) [1/1] Upgrading sudo from 1.9.5p1 to 1.9.5p2... [1/1] Extracting sudo-1.9.5p2: 100% You may need to manually remove /usr/local/etc/sudoers if it is no longer needed.
高山linux
使用 apk 命令請求 sudo 更新。apk update
apk upgrade
蘋果系統
我們將不得不等待 Apple 發布更新。
添加
這些都是舊的緩衝區溢出錯誤,本地用戶可以在沒有密碼或身份驗證的情況下使用 sudo 來利用這些錯誤。所以我們需要應用一個修復程序來擺脫 sudo。 兩個實用程序,這是 OpenBSD 的默認設置。當然,您也可以從 NetBSD 或 FreeBSD 端口安裝 doas。一個在這裡 Linux 端口 還。