跳到正文
>_ITDITDWeb 安全平台

术语表

什么是 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 监控和迅速更新是关键。