跳至主要內容
>_ITDITD網站資安平台

名詞解釋

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

RCE(Remote Code Execution/遠端程式碼執行)是一種讓攻擊者能夠透過網路在伺服器上執行任意程式的漏洞。它不只是被讀取資訊,而是直接通向「被接管」,因此在 CVSS 中也往往拿到最高分。本文用圖表通俗講解它與 XSS、SQLi 的區別、被害範圍由什麼決定,以及使用者能做的防禦(迅速更新、CVE 監控、最小權限)。

發布於 2026-06-07 更新於 2026-06-07 閱讀時間 2 分鐘

「CVSS 10.0 的 RCE」——這是漏洞新聞裡最讓人神經緊繃的一句話。本站從零開始解說:為什麼 RCE 是「最糟一類」,它和其他漏洞究竟有何不同。

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

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

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

為什麼是最糟一類

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

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

↓ 會被做到的事
讀取 .env 竊取金鑰
觸及資料庫進行帶走、竄改
橫向擴散到其他服務的跳板
↓ 能擴散到多大=
取決於那個程序的「權限」(所以最小權限才有效)
被害範圍由「正在執行的程序的權限」決定。最小權限與隔離,是最後一道防波堤。

被害範圍由「那個程序的權限」決定。正因如此,**容器化、最小權限、隔離(把爆炸半徑降到最小)**才有效。若以 root 執行就會全盤淪陷,若以非特權使用者+隔離執行就能把被害關在小範圍內。

多數並非「自己的 bug」,而是來自「已知的洞」

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

使用者能做的防禦

1

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

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

2

按實際執行版本來判定

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

3

把爆炸半徑降到最小

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

4

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

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

接下來閱讀

FAQ

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

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

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

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

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

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