PinTheft 是 Linux 核心 RDS(Reliable Datagram Sockets)子系統中的本地提權漏洞,攻擊者可透過 zerocopy double‑free 與 io uring fixed buffers 將記憶體錯誤轉化為 page‑cache 覆寫,最終取得 root 權限。[5][12] 攻擊需要本地執行權限、存在漏洞的核心版本、可使用的 RDS 模組,以及允許未授權使用者使用 io uring。[3][5] 更新 Linux 核心、停用未使用的 RDS 模組、限制未授權 io uring 使用與審查 SUID root 程式,是降低風險的主要防護措施。[1][6][14]

Create a landscape editorial hero image for this Studio Global article: What is the “PinTheft” Linux kernel privilege escalation vulnerability, how does the exploit work (including the RDS zerocopy double‑free bu. Article summary: PinTheft is a recently disclosed Linux local privilege escalation affecting the kernel’s RDS subsystem, where an RDS zerocopy reference-count/double-free bug can be chained with io_uring fixed buffers to overwrite page-c. Topic tags: general, general web. Reference image context from search candidates: Reference image 1: visual subject "# Re: PinTheft Linux LPE. > > v12-security have shared a new Linux LPE today, PinTheft [0]. > > > PinTheft is a Linux local privilege escalation exploit for an RDS zerocopy double-" source context "Re: PinTheft Linux LPE - oss-sec" Reference image 2: visual subject "# PinTheft: New Linux Exploit Steals Kernel References to Root
PinTheft 是近期披露的一個 Linux 核心本地權限提升(Local Privilege Escalation, LPE)漏洞。它存在於 Linux 核心的 RDS(Reliable Datagram Sockets)子系統中,攻擊者可以利用 zerocopy 記憶體管理錯誤,再搭配 io_uring fixed buffers 機制,將記憶體錯誤轉化為 page cache 覆寫,最終修改 SUID-root 可執行檔並取得 root 權限。
該漏洞由 V12 Security 團隊研究員 Aaron Esau 發現。由於 Linux 核心修補程式已發布,研究團隊隨後公開了概念驗證(PoC)利用程式。需要注意的是,PinTheft 屬於 本地攻擊漏洞,攻擊者必須先在系統上取得一般使用者等級的執行權限,才能進一步利用漏洞升級為 root。
PinTheft 發生在 Linux 核心的 RDS(Reliable Datagram Sockets) 網路子系統。RDS 是一種高效能資料傳輸協定,常見於 InfiniBand 高效能運算(HPC)叢集與某些分散式系統環境。
漏洞出現在 RDS zerocopy 傳送路徑。在這種模式下,核心會直接從使用者空間記憶體傳送資料,避免多次複製,以提升效能。但這也使記憶體管理邏輯更加複雜。
在函式 rds_message_zcopy_from_user() 中,核心會逐頁 pin(鎖定)使用者記憶體頁面 以便傳送。如果後續發生 page fault,錯誤處理流程會釋放已鎖定的頁面。但在特定情況下,該流程可能 錯誤地再次釋放已引用的頁面,導致 double‑free 或引用計數錯亂。
這個記憶體管理錯誤正是攻擊鏈的基礎。
研究人員展示了如何將這個核心記憶體錯誤與 Linux 現代 I/O 機制結合,形成可靠的提權攻擊。
攻擊者首先觸發 RDS 的 zerocopy 傳送路徑。當頁面鎖定過程中出現 page fault 時,錯誤處理流程可能錯誤釋放仍在使用的頁面,使核心進入 引用狀態不一致或已釋放記憶體仍被引用的狀態。
接著利用 io_uring fixed buffers。這是 Linux 的高效能非同步 I/O API,允許應用程式預先註冊記憶體緩衝區供 I/O 使用。
透過精心安排的操作,攻擊者可以 重新分配剛被釋放的實體頁面,並以可控方式佔用這些記憶體位置。
若被影響的頁面對應到 page cache(檔案頁面快取),攻擊者就能將記憶體破壞轉變成 覆寫快取中的檔案內容。
重要的是:這種操作 不會修改磁碟上的檔案,只會改變核心從記憶體快取提供的內容。
公開的攻擊示範將目標設為 SUID-root 可執行檔。SUID 檔案在 Linux 中具有特殊權限:執行時會以檔案擁有者(通常是 root)的權限運行。
當 page cache 中的該執行檔被覆寫後,核心會載入被竄改的版本,但仍保留其 root 權限屬性。
結果是:攻擊者執行該程式時即可 取得 root shell。
漏洞存在於包含該 RDS 實作的 Linux 核心中,但實際風險取決於系統設定。
安全研究報告指出 Arch Linux 是早期測試與展示漏洞利用的主要平台,原因包括:
只要滿足以下條件,任何 Linux 發行版理論上都可能受影響:
一些報告指出,Ubuntu、Debian、RHEL 與 AlmaLinux 的預設配置通常未啟用 RDS,因此暴露風險較低。但管理員仍應檢查實際核心設定,而非單純依賴預設假設。
CloudLinux 官方測試公開的 PoC 後表示,其平台版本 未受此漏洞影響。
一般而言,攻擊需要同時具備以下條件:
若缺少其中多個條件,漏洞利用難度會顯著增加,甚至無法成功。
系統管理員可以透過以下措施降低風險。
Linux 核心維護者已修補相關 RDS 程式碼。安裝最新核心更新是最重要的防護措施。
更新後需 重新啟動系統 才能生效。
如果環境不使用 RDS 網路協定,可透過以下方式降低攻擊面:
rds 模組加入 blacklist由於 exploit 依賴 io_uring fixed buffers,限制未特權使用者存取 io_uring 可降低風險。
攻擊鏈最後階段依賴 SUID 程式,因此應:
PinTheft 需要本地執行權限,因此 多使用者系統(如 CI runner、共享主機或開發伺服器)應優先更新與加固。
PinTheft 顯示現代 Linux 核心漏洞往往不是單一錯誤,而是 多個子系統組合利用 的結果。在此案例中,攻擊者結合了:
這種組合使看似冷門的核心模組也可能成為高影響力的攻擊面。
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
PinTheft 是 Linux 核心 RDS(Reliable Datagram Sockets)子系統中的本地提權漏洞,攻擊者可透過 zerocopy double‑free 與 io uring fixed buffers 將記憶體錯誤轉化為 page‑cache 覆寫,最終取得 root 權限。[5][12]
PinTheft 是 Linux 核心 RDS(Reliable Datagram Sockets)子系統中的本地提權漏洞,攻擊者可透過 zerocopy double‑free 與 io uring fixed buffers 將記憶體錯誤轉化為 page‑cache 覆寫,最終取得 root 權限。[5][12] 攻擊需要本地執行權限、存在漏洞的核心版本、可使用的 RDS 模組,以及允許未授權使用者使用 io uring。[3][5]
更新 Linux 核心、停用未使用的 RDS 模組、限制未授權 io uring 使用與審查 SUID root 程式,是降低風險的主要防護措施。[1][6][14]