<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>漏洞分析 on KnightLi的博客</title>
        <link>https://www.knightli.com/zh-tw/tags/%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/</link>
        <description>Recent content in 漏洞分析 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Fri, 01 May 2026 18:42:34 +0800</lastBuildDate><atom:link href="https://www.knightli.com/zh-tw/tags/%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Copy Fail 漏洞 CVE-2026-31431：Linux 核心檔案複製路徑中的容器逃逸風險</title>
        <link>https://www.knightli.com/zh-tw/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/</link>
        <pubDate>Fri, 01 May 2026 18:42:34 +0800</pubDate>
        
        <guid>https://www.knightli.com/zh-tw/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/</guid>
        <description>&lt;p&gt;Copy Fail 是一個影響 Linux 核心檔案複製路徑的漏洞，編號為 &lt;code&gt;CVE-2026-31431&lt;/code&gt;。
Bugcrowd 的分析把它稱為一個值得關注的核心級問題：在特定條件下，非特權使用者可以利用檔案複製相關邏輯觸發越權寫入，進而造成權限提升或容器逃逸。&lt;/p&gt;
&lt;p&gt;從風險角度看，它不是普通應用層漏洞。
問題發生在核心處理檔案複製和頁面快取的路徑上，因此影響面會延伸到容器、共享主機、CI/CD Runner、PaaS 平台和多租戶 Linux 環境。
如果攻擊者已經能在系統裡執行低權限程式碼，漏洞就可能成為進一步突破隔離邊界的跳板。&lt;/p&gt;
&lt;h2 id=&#34;漏洞大致發生在哪裡&#34;&gt;漏洞大致發生在哪裡
&lt;/h2&gt;&lt;p&gt;Copy Fail 關聯的是 Linux 核心中的檔案複製能力。
現代 Linux 提供了多種高效複製路徑，例如 &lt;code&gt;copy_file_range&lt;/code&gt;、splice 類路徑以及不同檔案系統之間的資料複製最佳化。
這些機制的目標是減少使用者態和核心態之間的資料搬運，提高大檔案複製效能。&lt;/p&gt;
&lt;p&gt;問題在於，高效能複製路徑通常會複用頁面快取、檔案偏移、權限檢查和檔案系統回呼。
如果其中某個邊界條件處理不嚴，核心可能在錯誤的權限上下文裡執行寫入，或者把本不應該被修改的資料頁暴露給攻擊者控制。&lt;/p&gt;
&lt;p&gt;Copy Fail 的核心風險可以概括為：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;攻擊者不需要 root 權限；&lt;/li&gt;
&lt;li&gt;攻擊入口來自常見檔案複製能力；&lt;/li&gt;
&lt;li&gt;影響點在核心態；&lt;/li&gt;
&lt;li&gt;在容器環境裡，漏洞可能繞過命名空間和掛載隔離；&lt;/li&gt;
&lt;li&gt;成功利用後可能寫入宿主機上不應被容器修改的內容。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這也是它被重點討論的原因。
容器安全依賴 Linux 核心提供隔離能力，一旦核心路徑本身出現越權寫入，容器邊界就會變得脆弱。&lt;/p&gt;
&lt;h2 id=&#34;為什麼容器場景更敏感&#34;&gt;為什麼容器場景更敏感
&lt;/h2&gt;&lt;p&gt;容器並不是虛擬機。
容器內行程和宿主機共享同一個 Linux 核心，只是透過 namespace、cgroup、capability、seccomp、AppArmor/SELinux 等機制做隔離。&lt;/p&gt;
&lt;p&gt;如果漏洞發生在使用者態服務裡，通常只影響某個容器或某個行程。
但如果漏洞發生在核心裡，尤其是可以被非特權使用者觸發的核心漏洞，攻擊者可能從容器內部影響宿主機。&lt;/p&gt;
&lt;p&gt;Copy Fail 的危險點就在這裡。
很多平台允許使用者提交建置任務、執行腳本、啟動容器或執行外掛。
攻擊者只要能在容器裡執行程式碼，就可能嘗試利用核心檔案複製路徑突破隔離。&lt;/p&gt;
&lt;p&gt;高風險環境包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kubernetes 叢集中的不可信工作負載；&lt;/li&gt;
&lt;li&gt;CI/CD 平台的共享 Runner；&lt;/li&gt;
&lt;li&gt;允許使用者上傳程式碼執行的沙箱平台；&lt;/li&gt;
&lt;li&gt;多租戶 Linux 主機；&lt;/li&gt;
&lt;li&gt;容器化 PaaS；&lt;/li&gt;
&lt;li&gt;執行第三方外掛或擴充的系統。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果這些環境裡的核心版本處於受影響範圍，而且缺少額外限制，風險就會明顯升高。&lt;/p&gt;
&lt;h2 id=&#34;受影響範圍要看核心補丁狀態&#34;&gt;受影響範圍要看核心補丁狀態
&lt;/h2&gt;&lt;p&gt;這類漏洞的判斷不能只看發行版名稱。
同一個 Ubuntu、Debian、RHEL、Fedora 或 Arch 版本，是否受影響取決於目前實際執行的核心套件，以及發行版是否已經回補補丁。&lt;/p&gt;
&lt;p&gt;排查時應優先確認三件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;目前執行核心版本；&lt;/li&gt;
&lt;li&gt;發行版安全公告是否提到 &lt;code&gt;CVE-2026-31431&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;雲端廠商或託管平台是否已經完成宿主機核心修復。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可以先在系統上確認核心版本：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然後查看發行版安全公告、核心 changelog 或雲端平台公告。
不要只根據主版本號判斷是否安全，因為很多企業發行版會把安全補丁回補到舊版本核心裡。&lt;/p&gt;
&lt;h2 id=&#34;臨時緩解思路&#34;&gt;臨時緩解思路
&lt;/h2&gt;&lt;p&gt;最可靠的修復方式仍然是更新核心。
但在補丁無法立刻部署的環境裡，可以先降低暴露面。&lt;/p&gt;
&lt;p&gt;常見緩解方向包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;禁止不可信使用者執行特權容器；&lt;/li&gt;
&lt;li&gt;避免給容器掛載敏感宿主機路徑；&lt;/li&gt;
&lt;li&gt;收緊容器 capability，尤其不要隨意授予 &lt;code&gt;CAP_SYS_ADMIN&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;使用 seccomp、AppArmor 或 SELinux 限制危險系統呼叫和檔案存取；&lt;/li&gt;
&lt;li&gt;將不可信工作負載遷移到隔離更強的虛擬機；&lt;/li&gt;
&lt;li&gt;對 CI/CD Runner 做按任務銷毀，避免長期複用同一宿主機；&lt;/li&gt;
&lt;li&gt;監控異常檔案寫入、權限變更和容器逃逸跡象。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這些措施不能替代補丁。
它們的作用是降低攻擊成功率和影響面，特別是在補丁發布到生產環境之前爭取緩衝時間。&lt;/p&gt;
&lt;h2 id=&#34;修復優先級&#34;&gt;修復優先級
&lt;/h2&gt;&lt;p&gt;建議按環境風險排序處理。&lt;/p&gt;
&lt;p&gt;優先修復：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;對外提供容器執行能力的平台；&lt;/li&gt;
&lt;li&gt;執行不可信程式碼的 CI/CD 節點；&lt;/li&gt;
&lt;li&gt;多租戶 Kubernetes 節點；&lt;/li&gt;
&lt;li&gt;有使用者自定義外掛或腳本執行能力的系統；&lt;/li&gt;
&lt;li&gt;共享開發機、教學機、實驗平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;相對低優先級：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;單使用者桌面；&lt;/li&gt;
&lt;li&gt;只執行可信服務的內網主機；&lt;/li&gt;
&lt;li&gt;已經使用虛擬機隔離不可信程式碼的環境。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;即便風險較低，也建議隨發行版更新核心。
核心漏洞常常會被組合進更複雜的攻擊鏈裡，拖延補丁沒有太多收益。&lt;/p&gt;
&lt;h2 id=&#34;給維運團隊的檢查清單&#34;&gt;給維運團隊的檢查清單
&lt;/h2&gt;&lt;p&gt;可以按下面順序處理：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;盤點所有 Linux 主機和容器節點；&lt;/li&gt;
&lt;li&gt;標記會執行不可信程式碼的機器；&lt;/li&gt;
&lt;li&gt;檢查目前核心版本和發行版安全公告；&lt;/li&gt;
&lt;li&gt;優先更新高風險節點；&lt;/li&gt;
&lt;li&gt;對無法立即更新的節點啟用臨時隔離策略；&lt;/li&gt;
&lt;li&gt;檢查容器執行時設定，移除不必要的特權和宿主機掛載；&lt;/li&gt;
&lt;li&gt;更新後重啟節點，確認新核心已經實際生效；&lt;/li&gt;
&lt;li&gt;保留變更記錄，方便後續稽核。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;核心套件安裝完成並不代表系統已經執行在新核心上。
更新後必須重啟，並再次確認：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;Copy Fail / &lt;code&gt;CVE-2026-31431&lt;/code&gt; 的重點不是某個應用崩潰，而是 Linux 核心檔案複製路徑中的權限邊界問題。
它讓非特權程式碼有機會觸碰更高權限的資料寫入路徑，因此在容器和多租戶環境裡尤其值得重視。&lt;/p&gt;
&lt;p&gt;處理這類漏洞時，最重要的是兩件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;盡快跟進發行版或雲端廠商提供的核心補丁；&lt;/li&gt;
&lt;li&gt;在補丁部署前限制不可信程式碼、特權容器和敏感宿主機掛載。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;對個人桌面來說，它可能不是馬上需要恐慌的問題。
但對執行容器平台、CI/CD、沙箱和共享主機的團隊來說，應該把它當作高優先級核心安全更新處理。&lt;/p&gt;
&lt;p&gt;參考來源：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.bugcrowd.com/blog/what-we-know-about-copy-fail-cve-2026-31431/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Bugcrowd：What We Know About Copy Fail CVE-2026-31431&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://copy.fail/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Copy Fail 官方說明&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
