深入剖析 CVE-2021-3560 與 CVE-2021-4034:原理、區別與聯系

CVE-2021-3560 和 CVE-2021-4034 是 2021 年曝光的兩個 Linux 本地權限提升漏洞,均涉及 Polkit 組件。由于它們影響廣泛且利用門檻較低,迅速引起安全社區關注。本文將深入分析這兩個漏洞的技術原理、影響范圍、區別與聯系,并結合實際案例,提供緩解措施及安全建議。


1. CVE-2021-3560:Polkit 認證繞過漏洞

1.1 漏洞原理

CVE-2021-3560 是一個 認證繞過漏洞,源于 Polkit 處理 DBus 消息時的邏輯缺陷。Polkit(PolicyKit)是 Linux 權限管理框架,通過 DBus 與客戶端通信。當用戶使用 pkexec 提權時,Polkit 需要驗證其權限。

漏洞出現在 Polkit 處理 中斷請求 時的邏輯錯誤:

  1. 用戶發起特權請求(如 pkexec --user nobody)。
  2. 在 Polkit 處理該請求的過程中,攻擊者通過 SIGTERM 終止進程。
  3. Polkit 未能正確清理狀態,導致后續請求被誤認為已通過認證,從而賦予 root 權限。

1.2 技術細節

漏洞位于 polkitd 處理 DBus 消息的邏輯中,涉及 GLib 的 GMainLoop 事件處理機制。由于 PolkitSubject 對象在認證中斷后未釋放,導致狀態混淆。

攻擊者可使用以下 PoC(概念驗證代碼)來利用該漏洞:

for i in {1..100}; do (pkexec --user nobody bash &); sleep 0.01; killall -9 pkexec; done

此代碼利用競態條件,不斷中斷 pkexec 進程,使得認證狀態失效,從而繞過權限檢查。

1.3 影響范圍

  • 受影響版本:Polkit 0.113 至 0.118。
  • 受影響系統:Ubuntu 20.04、Debian 10、Fedora 34 等主流發行版。
  • CVSS 評分:7.8(高危)。
  • 利用門檻:需要本地用戶權限,但無需特殊權限。
  • 修復方案:漏洞于 2021 年 6 月 3 日公開,0.119 版本修復了狀態清理問題。

2. CVE-2021-4034:pkexec 本地提權漏洞

2.1 漏洞原理

CVE-2021-4034(“PwnKit”)是 pkexec 二進制文件中的 本地提權漏洞,源于參數處理錯誤。

pkexec 運行時:

  1. argc == 1(無參數),則 pkexec 試圖解析參數。
  2. 由于缺少邊界檢查,pkexec 試圖從環境變量加載動態庫,如 GCONV_PATH
  3. 攻擊者可偽造共享庫,使其以 root 權限執行任意代碼。

2.2 技術細節

pkexec 源碼中的 main() 函數對 argv 處理不當:

int main(int argc, char *argv[]) {if (argc < 2) {char *path = g_find_program_in_path(argv[0]);setlocale(LC_ALL, ""); // 觸發 GCONV_PATH 加載}
}

攻擊者可以這樣利用:

export GCONV_PATH=./malicious_dir
gcc -shared -fPIC -o malicious.so exploit.c
pkexec

pkexec 會加載惡意庫 malicious.so,以 root 權限執行其中的代碼。

2.3 影響范圍

  • 受影響版本:Polkit 0.105 及之后所有版本(漏洞自 2009 年引入)。
  • 受影響系統:幾乎所有 Linux 發行版(Ubuntu、Debian、CentOS、RHEL 等)。
  • CVSS 評分:7.8(高危)。
  • 利用門檻:本地用戶可直接利用,無需競態條件。
  • 修復方案:2022 年 1 月 25 日披露,0.120 版本修復該問題。

3. CVE-2021-3560 與 CVE-2021-4034 的區別與聯系

3.1 主要區別

漏洞編號攻擊目標觸發方式技術要求影響范圍
CVE-2021-3560Polkit DBus競爭條件需要精準時序影響 2019-2021 年的系統
CVE-2021-4034pkexec確定性利用僅需環境變量影響 2009 年以來所有系統

3.2 共同點

  • 都涉及 Polkit 權限管理機制。
  • 都可用于本地權限提升,從普通用戶提權至 root。
  • 都已被黑客利用,成為實際攻擊場景中的重要漏洞。
  • 都已通過軟件更新修復,建議立即升級系統。

4. 防御與緩解措施

4.1 更新系統

  • CVE-2021-3560:升級至 Polkit 0.119 或更高。
  • CVE-2021-4034:升級至 Polkit 0.120 或更高。

4.2 臨時緩解方案

  • 移除 pkexec 的 setuid 權限
    chmod u-s /usr/bin/pkexec
    
  • 禁用 Polkit 服務(適用于無 GUI 服務器)
    systemctl stop polkit && systemctl disable polkit
    

4.3 監控與檢測

  • 檢查 pkexec 的異常調用日志:
    journalctl -xe | grep pkexec
    
  • 使用 SELinuxAppArmor 限制 pkexec 訪問權限。

5. 結論

CVE-2021-3560 和 CVE-2021-4034 展示了 Linux 權限管理的兩個關鍵問題:

  • 認證繞過(CVE-2021-3560)
  • 輸入驗證不足(CVE-2021-4034)

其中,CVE-2021-4034 影響所有主流 Linux 發行版,危害更大。建議 Linux 用戶立即更新系統,實施必要的防御措施,以防止本地提權攻擊。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86499.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86499.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86499.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jupyter Notebook 完全指南:從入門到生產力工具

Jupyter Notebook 完全指南&#xff1a;從入門到生產力工具 Jupyter Notebook 已成為數據科學、機器學習和科研領域的標準工具&#xff0c;它完美結合了代碼、文檔和可視化功能。本文將帶您全面了解 Jupyter 的強大功能&#xff0c;并展示如何將其轉化為您的超級生產力工具。 …

HKDF密鑰派生原理與應用詳解

HKDF&#xff08;HMAC-Based Key Derivation Function&#xff09;是一種基于 HMAC&#xff08;Hash-based Message Authentication Code&#xff09;的密鑰派生函數&#xff0c;用于從原始密鑰材料&#xff08;如共享密鑰、隨機數等&#xff09;生成多個加密密鑰&#xff08;如…

SpringBoot + MyBatis 事務管理全解析:從 @Transactional 到 JDBC Connection 的旅程

SpringBoot MyBatis 事務管理全解析&#xff1a;從 Transactional 到 JDBC Connection 的旅程 一、JDBC Connection&#xff1a;事務操作的真正執行者1.1 數據庫事務的本質1.2 Spring 與 Connection 的協作流程 二、從 Transactional 到 JDBC Connection 的完整鏈路2.1 Spring…

Wpf之應用圖標的修改!

前言 Wpf之應用圖標的修改&#xff01; 一、修改步驟 1、準備好ico圖片。 2、右鍵項目》點擊屬性 3、找到win32資源點擊 4、點擊瀏覽找到ioc圖標 5、點擊運行程序 6、右鍵項目點擊打開在資源管理器中打開 找到以下路徑 在該路徑下能看到.exe文件的圖標已經改成你想要的…

Spring Boot整合Redis指南

一、環境準備 在開始整合前&#xff0c;請確保已完成以下準備工作&#xff1a; 已安裝Redis服務&#xff08;安裝指南&#xff09;創建好Spring Boot項目 二、添加依賴 在項目的pom.xml中添加以下依賴&#xff1a; <!-- Redis核心依賴 --> <dependency><gr…

Re-攻防世界

easyEZbaby_app Jadx 這個文件一般是窗口界面&#xff0c;點擊中間的一般就是主函數 Obj1是用戶名&#xff0c;obj2是密碼 用戶名 public boolean checkUsername(String str) { if (str ! null) { try { if (str.length() ! 0 &&…

矩陣題解——搜索二維矩陣 II【LeetCode】

240. 搜索二維矩陣 II 1.1 核心思想 問題描述&#xff1a;給定一個 m x n 的二維矩陣&#xff0c;矩陣的每一行從左到右遞增&#xff0c;每一列從上到下遞增。判斷目標值 target 是否存在于矩陣中。解決思路&#xff1a; 從矩陣的右上角&#xff08;或左下角&#xff09;開始搜…

dockerfile文件詳解之基礎語法

dockerfile文件詳解之基礎語法 一般而言 Dockerfile 可以分為4個部分 &#xff08;1&#xff09;基礎鏡像信息&#xff0c; &#xff08;2&#xff09;維護者信息 &#xff08;3&#xff09;鏡像操作命令 &#xff08;4&#xff09;啟動時執行指令 1-注釋 用 # 來進行注…

WebFuture:獨立一級域名nginx取消配置Secure屬性的問題

問題分析&#xff1a; 部分站群站點使用了獨立一級域名&#xff0c;但是前臺問卷調查等模塊無法提交&#xff0c;排查是由于主站啟用了https&#xff0c;配置了cookies的Secure屬性是true&#xff0c;但是子站的獨立一級域名沒有使用https&#xff0c;所以瀏覽器不能寫入cooki…

【網站內容安全檢測】之3:獲取所有外部域名訪問后圖像

Go語言調用Chrome瀏覽器去進行截圖的操作&#xff0c;對電腦的性能要求比較高&#xff0c;所以速度比較有限&#xff0c;但是目前來看這種方式可以最佳的去獲取網頁加載后的結果。 main.go package mainimport ("context""errors""flag""…

華曦達港股IPO遞表,AI Home生態構建智能生活新藍圖

在智能家居逐漸普及的當下&#xff0c;華曦達打造的AI Home生態為用戶提供了更智能、便捷的生活解決方案&#xff0c;在行業中展現出獨特優勢。 華曦達AI Home生態由AI Home系統平臺、AI Home基礎設施、AI Home設備以及可連接外部設備的開放式設備矩陣構成&#xff0c;是一個開…

java+vue+SpringBoo智慧農業專家遠程指導系統(程序+數據庫+報告+部署教程+答辯指導)

源代碼數據庫LW文檔&#xff08;1萬字以上&#xff09;開題報告答辯稿ppt部署教程代碼講解代碼時間修改工具 技術實現 開發語言&#xff1a;后端&#xff1a;Java 前端&#xff1a;vue框架&#xff1a;springboot數據庫&#xff1a;mysql 開發工具 JDK版本&#xff1a;JDK1.…

免費AI助手工具深度測評:Claude4本地化部署與實戰應用指南

免費AI助手工具深度測評&#xff1a;Claude4本地化部署與實戰應用指南 AI無限對話免費Rovo工具Claude4碾壓cursor和augment 前言 在AI工具日益普及的今天&#xff0c;大多數高質量的AI助手都需要付費訂閱或有使用限制。然而&#xff0c;最近發現了一款基于Claude 4的免費AI助手…

MCP瀏覽器工具:playwright、chrome-mcp

參考&#xff1a; https://github.com/microsoft/playwright-mcp https://github.com/hangwin/mcp-chrome chrome-mcp安裝需要額外安裝成瀏覽器插件 用cherrystudio v1.4.5測試 mcp配置&#xff1a; "chrome-mcp-server": {"name": "chrome-mcp-serve…

水利水電安全員考試不同等級的考試內容有哪些區別?

水利水電安全員考試一般分為企業主要負責人&#xff08;A 類&#xff09;、項目負責人&#xff08;B 類&#xff09;和專職安全生產管理人員&#xff08;C 類&#xff09;三個等級。不同等級的考試內容都包括安全生產知識和管理能力兩部分&#xff0c;但具體的側重點有所不同。…

關于USB模式的一些內容(附USB接口顏色釋義圖)

今天在處理工作中的事情的時候,突然有個產品的小伙伴來問關于USB的事情,順便給她簡單說了下。USB接口模式主要包括以下幾種:Host(主機模式)、Device(設備模式)、OTG(On-The-Go),以及較少使用的Accessory模式。以下是對這些模式的詳細說明、區別差異及應用場景: 1. H…

React中的ErrorBoundary

文章目錄 前言? 一、使用類組件實現 ErrorBoundary&#xff08;官方推薦方式&#xff09;用法示例&#xff1a; ? 二、用函數組件實現 ErrorBoundary&#xff08;借助 Hook react-error-boundary 庫&#xff09;1. 安裝 react-error-boundary2. 使用 ErrorBoundary 組件&…

歷年西北工業大學計算機保研上機真題

西北工業大學計算機保研上機真題 在線測評鏈接&#xff1a;https://pgcode.cn/problem 海倫公式求面積 題目描述 給定三角形的三條邊長 a a a, b b b, c c c&#xff0c;先判斷這三條邊是否能構成一個三角形。 如果不能構成三角形&#xff0c;輸出 N a N NaN NaN&#…

掃地機產品認證--黑名單制裁公司能否拿到美國產品準入許可(FCC認證)

掃地機產品認證–黑名單制裁公司能否拿到美國產品準入許可(FCC認證) 文章目錄 掃地機產品認證--黑名單制裁公司能否拿到美國產品準入許可(FCC認證)?? **一、核心限制規則**?? **二、企業需滿足的額外條件**??? **三、黑名單企業的應對可能性**?? **四、總結**產品認證…

數據結構復習2

第二章 線性表 2.1線性表的定義和基本操作 線性表&#xff1a;一種邏輯結構&#xff0c;表示數據元素之間的一對一線性關系&#xff08;如數組、鏈表、棧、隊列等&#xff09;。 2.1.1線性表的定義 線性表是具有相同數據類型的n(n>0)個數據元素的有限序列。 (其中n為表長…