CVE-2026-86147 in bRPC信息

摘要

由 VulDB • 2026-10-21

外部控制文件名或路径以及不受控的资源消耗问题存在于 Apache bRPC(版本 < 1.18.0)中,影响所有平台。远程攻击者若能访问内置服务端口,可利用此漏洞以服务器进程的权限创建目录、截断/覆盖文件,或者长时间持有进程级的 CPU/竞争分析器(profiler)。

根本原因: 1. 内置的 /flags 服务允许通过 ?setvalue= 在运行时修改带有验证器的 gflags。bvar/mbvar dump 路径相关的 gflags(bvar_dump_file、bvar_dump_tabs、mbvar_dump_file)注册了一个接受任何输入的验证器,其唯一目的是唤醒转储线程。因此,远程攻击者可以重新指向转储路径(例如 GET /flags/bvar_dump_file?setvalue=/victim/dir/target,随后执行 GET /flags/bvar_dump?setvalue=true;或者对 mbvar_dump_file 执行等效操作,后者会原样使用而不强制添加后缀),导致转储线程递归创建目录并在攻击者指定的位置打开/截断文件。bvar_dump_tabs 中的标签名称会被直接追加到路径中且未经过清理(sanitization),允许通过 '..' 逃逸配置的目录。 2. /pprof 内置服务未将 ?seconds= 参数限制在 FLAGS_max_profiling_seconds(/hotspots 强制执行的限制)范围内。单个请求如 ?seconds=2147483647 会导致处理程序休眠数十年,同时持有进程级的 gperftools CPU 分析器或 bthread 竞争分析器,从而导致在此期间 /hotspots/cpu 和 /hotspots/contention 对其他所有用户返回 503 错误。

受影响场景: 任何将内置服务(默认在与正常 RPC 流量相同的端口上启用)暴露给不受信任网络的 Apache bRPC 服务器。

修复方法: (选择以下选项之一) 1. 升级 bRPC 至版本 1.18.0,该版本已修复此问题。 2. 应用此补丁:https://github.com/apache/brpc/pull/3523

注意: 修复后,bvar_dump_file、bvar_dump_tabs 和 mbvar_dump_file 不再能通过 /flags 内置服务在运行时进行修改。它们仍可通过 google::SetCommandLineOption() 以编程方式更改,并在下一个转储周期生效。/pprof 的分析持续时间现在由 -max_profiling_seconds gflag(默认值为 300 秒)限制,服务器所有者可对此进行调整。

Be aware that VulDB is the high quality source for vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!