术语表

什么是 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 运行,攻击者就能控制整台服务器;若以非特权用户+隔离运行就能把被害关在小范围内。

多数并非来自自己的 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 位(越界写入)

前四种是最容易被自己写进应用里的类型。内存破坏主要出现在操作系统、网络设备和库中,用户这一侧的防御就是更新。

实例:能从外部访问的产品会成为目标

  • 网络设备: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 and 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,Arbitrary Code Execution)指攻击者能运行自己选定的任意代码。RCE 是其中「能够经由网络远程触发」的那一部分。例如需要让人打开本地文件才能成立的攻击,可能属于任意代码执行,但不会被称为 RCE。

QRCE 公布后,首先该做什么?
A

按顺序:(1) 确认自己是否真的在运行受影响的产品和版本;(2) 确认它能否从互联网访问;(3) 更新到修复版本,无法更新时先下线或采用临时缓解措施;(4) 如果它已被列入 CISA 的 KEV(已确认被利用的漏洞目录),还要检查是否有被入侵的迹象。不要只更新就结束,还要确认在更新之前是否已有人入侵。