致命錯誤 sudo 使 Linux 和 Unix 系統處於危險之中


基於堆的 sudo 錯誤
一種以 ny 身份登錄的非特權用戶可以利用舊的錯誤 sudo 來獲得 root 特權。這被認為是 Linux 和類 Unix 操作系統的主要安全問題。 Qualys 研究團隊發現 sudo 本身存在隱藏的堆溢出漏洞 過去的10年並不引人注目. 這個錯誤導致 本地用戶無需身份驗證即可獲得 root 訪問權限 (不需要用戶密碼)。操作系統應盡快修補。

系統管理員使用 sudo 命令向特定用戶授予權限。例如,出於服務器管理目的重新啟動 Nginx,或重新啟動 Apache 服務器。 Ansible 等 IT 自動化工具也大量使用 sudo。

致命錯誤 sudo 使 Linux 和 Unix 系統處於危險之中

有兩個嚴重的 sudo 漏洞。

  1. 發現 sudo 解析命令行時內存處理不當。本地攻擊者可以利用此問題意外訪問管理員帳戶。 (CVE-2021-3156)
  2. 發現 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

sudo 中的嚴重錯誤使 Linux 和 Unix 系統處於危險之中

對於穩定的 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 端口 還。