名詞解釋

什麼是 RCE(遠端程式碼執行)——為什麼它是最糟一類的漏洞

RCE(遠端程式碼執行)是讓攻擊者透過網路在伺服器上執行任意程式的漏洞,直接通向被接管,CVSS 也常為最高分。說明它與 XSS、SQLi 的區別、被害範圍由什麼決定,以及更新、CVE 監控等防禦。

發布於 2026-06-07 更新於 2026-10-06 閱讀時間 3 分鐘
本頁內容

「CVSS 10.0 的 RCE」是漏洞新聞裡最嚴重的說法之一。本站從零開始解說:為什麼 RCE 是「最糟一類」,它和其他漏洞究竟有何不同。

它和其他漏洞究竟有何不同

許多漏洞的影響是有限的。RCE 因為「在伺服器本體上執行命令」,量級完全不同。下面拿三個有代表性的漏洞來比較。

漏洞程式碼執行的地方主要被害一般嚴重度
XSS使用者的瀏覽器竊取工作階段、竄改畫面中~高
SQLi資料庫讀出、竄改資料高
RCE伺服器本體接管、擴散到其他系統、該程序能做的一切最糟(可達 10.0 級)

為什麼是最糟一類

攻擊者能在伺服器上執行命令,就意味著那個程序能做的一切,攻擊者都能做。

RCE 成立(任意程式碼執行)

↓ 會被做到的事
讀取 .env 竊取金鑰
觸及資料庫進行帶走、竄改
進一步觸及其他服務的立足點
↓ 能擴散到多大=
取決於那個程序的「權限」(所以最小權限才有效)
損害能擴散到多遠,取決於正在執行的程序的權限。最小權限與隔離能限制它。

損害能擴散到多遠,由「那個程序的權限」決定。正因如此,**容器化、最小權限、隔離(限制損害的擴散)**才有效。若以 root 執行,攻擊者就能控制整台伺服器;若以非特權使用者+隔離執行就能把被害關在小範圍內。

多數 RCE 並非來自自己的 bug,而是來自已公開的漏洞

RCE 不僅來自自己寫出的 bug,更多時候是來自所用框架或函式庫的已知漏洞。歷史上的重大事故,也大多是 RCE。

使用者能做的防禦

1

不要放任已公開的 CVE(最大的防禦)

用機器監控 CVE(Dependabot / osv-scanner),並迅速更新到修復版本。RCE 大半都源於放任已知漏洞不修補。

2

按實際執行版本來判定

不要看清單裡的下限標註,而要按實際正在執行的版本來衡量危險。相信標註會讓你誤判危險度。

3

限制損害

以非特權使用者執行,隔離容器與網路。萬一被踩,也能把被害關在小範圍內。

4

不要把輸入直接交給執行系統

不要讓外部輸入直通到 shell 命令、deserialization 或範本求值。這是不自己製造出 RCE 的基本功。

導致 RCE 的主要原因

RCE 是「結果」的名稱,原因分成幾種類型。MITRE 於 2025 年 12 月公布的「CWE Top 25」(最危險的 25 種軟體弱點)中,有許多弱點會導致 RCE。

原因(CWE)內容CWE Top 25(2025)
OS 命令注入(CWE-78)外部輸入混進 shell 命令,被當成命令執行第 9
程式碼注入(CWE-94)外部輸入被當成程式碼求值並執行第 10
危險的檔案上傳(CWE-434)可執行的檔案被放到伺服器上並在那裡執行(→ 檔案上傳漏洞,英文)第 12
不安全的反序列化(CWE-502)還原從外部收到的資料時執行了程式碼(→ 不安全的反序列化,英文)第 15
記憶體破壞(CWE-787 等)以 C/C++ 撰寫的軟體寫出記憶體範圍之外,執行流程被劫持第 5(越界寫入)

前四種是你最可能在自己的 App 裡做出來的。記憶體破壞多出現在作業系統、網路設備與函式庫中,使用者這一側的防禦是更新。

實際案例:能從外部連到的產品會被瞄準

  • 網路設備:2024 年 7 月,美國 CISA 與 FBI 發出警示,要求製造商消除 OS 命令注入;起因是網路邊界設備中的這類缺陷被當作無需認證的 RCE 利用(→ 保護 VPN 設備,英文)。
  • AI 工具:用來建構 AI 代理的工具 Langflow,其程式碼驗證功能存在無需認證的 RCE(CVE-2026-0770),並被列入 KEV(→ CVE-2026-0770 解說,英文)。
  • CMS:WordPress 核心的檔案引入缺陷(CVE-2026-87902),在滿足特定伺服器條件時會導致 RCE(→ CVE-2026-87902 解說,英文)。

共通點是這些產品都位於不需認證就能從網際網路連到的地方。RCE 的危險程度不只取決於缺陷本身,也很大程度取決於它能否從外部被觸及。

聽到「CVSS 10.0 的 RCE」時要確認什麼

1

你有在執行它嗎?

用 CVE / KEV 查詢從 CVE 編號查出受影響的產品與版本,再與你環境中實際執行的版本比對。相依套件可以用 osv-scanner 一次檢查。

2

能從外部連到嗎?

確認受影響的功能或管理畫面,是否不需認證就能從網際網路連到。若可以,考慮在更新之前讓它離線。

3

是否正被利用?

如果列在 CISA 的 KEV 中,就表示實際正被利用。分數的讀法請見以 CVSS、EPSS 與 KEV 決定優先順序。

4

更新之後,找尋入侵的跡象

如果在更新前已有人進來,更新後他們仍然在。找找不認得的檔案、新增的帳號,以及可疑的對外通訊(C2)。

出處(一手資料)

  • MITRE, "2025 CWE Top 25 Most Dangerous Software Weaknesses"(2025 年 12 月)— cwe.mitre.org(CWE-78、94、434、502、787 的排名)
  • CISA 與 FBI, "Secure by Design Alert: Eliminating OS Command Injection Vulnerabilities"(2024 年 7 月 10 日)— cisa.gov
  • FIRST, "CVSS v3.1 Specification Document" — first.org(嚴重程度的評分方式)
  • CISA, "Known Exploited Vulnerabilities Catalog" — cisa.gov

接下來閱讀

FAQ

QRCE 和常見漏洞(如 XSS)有什麼不同?
A

XSS 等主要在「使用者的瀏覽器內」作惡,而 RCE 能在「伺服器本體」上執行任意程式。它會波及伺服器的權限、資料和其他服務,因此一般來說最為嚴重。

QRCE 的被害能擴散到多大範圍?
A

擴散範圍取決於「被攻擊時正在執行的那個程序的權限」。如果以 root 或較大權限執行,被害將極其慘重;若以非特權使用者+容器隔離執行,就能把被害關在小範圍內。所以最小權限和隔離才有效。

Q使用者(開發者)這一側該如何防禦 RCE?
A

除了不讓自己寫出 RCE 漏洞(例如不把輸入直接交給執行系統)之外,最大的防禦是「不要放任所用框架/函式庫已公開的 RCE 不管」。CVE 監控和迅速更新是關鍵。

Q「CVSS 10.0 的 RCE」是什麼意思?
A

指在 CVSS(以 0.0~10.0 表示漏洞嚴重程度的通用尺度)上拿到最高分的 RCE。10.0 一般代表:可透過網路利用、不需認證也不需使用者操作、對機密性、完整性與可用性的影響都很高,而且影響越出有漏洞的元件本身。若你使用的產品受影響,值得先於其他工作進行更新或讓它離線。

QRCE 和任意程式碼執行(ACE)有什麼不同?
A

任意程式碼執行(ACE)是指攻擊者能執行自己選擇的任何程式碼。RCE 是其中可透過網路從遠端觸發的那一部分。例如需要讓別人開啟本機檔案才能成立的攻擊,可能屬於任意程式碼執行,但不會被稱為 RCE。

QRCE 公布時,最先該做什麼?
A

依序是:(1) 確認你是否真的在執行受影響的產品與版本;(2) 確認它能否從網際網路連到;(3) 更新到修復版本,若無法更新就讓它離線或套用暫時的因應措施;(4) 若它列在 CISA 確認已被利用的漏洞清單 KEV 中,也要找尋遭入侵的跡象。不要只停在更新,還要確認更新前是否已有人進來。