CVE-2026-86147: Apache bRPC: Arbitrary file creation/truncation via /flags and unbounded profiling duration via /pprof

Published Oct 21, 2026
·
Updated

External control of file name or path and uncontrolled resource consumption in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers who can reach the builtin service port to create directories and truncate/overwrite files with the privileges of the server process, or to hold the process-wide CPU/contention profiler for an arbitrarily long time.

Root Cause: 1. The builtin /flags service allows gflags carrying a validator to be modified at runtime via ?setvalue=. The bvar/mbvar dump path gflags (bvardumpfile, bvardumptabs, mbvardumpfile) were registered with an accept-anything validator whose only purpose was to wake the dumping thread. A remote attacker could therefore repoint the dump path (e.g. GET /flags/bvardumpfile?setvalue=/victim/dir/target followed by GET /flags/bvardump?setvalue=true, or the equivalent for mbvardumpfile, which is used verbatim without a forced suffix), making the dumping thread recursively create directories and open/truncate files at attacker-chosen locations. Tab names in bvardumptabs were appended to the path without sanitization, allowing '..' to escape the configured directory. 2. The /pprof builtin service did not clamp the ?seconds= parameter to FLAGSmaxprofilingseconds (a limit that /hotspots enforced). A single request such as ?seconds=2147483647 made the handler sleep for decades while holding the process-wide gperftools CPU profiler or bthread contention profiler, so /hotspots/cpu and /hotspots/contention returned 503 for everyone else during that time.

Affected Scenarios: Any Apache bRPC server exposing the builtin services (enabled by default on the same port as normal RPC traffic) to untrusted networks.

How to Fix: (Choose one of the following options) 1. Upgrade bRPC to version 1.18.0, which fixes this issue. 2. Apply this patch: https://github.com/apache/brpc/pull/3523

Note: After the fix, bvardumpfile, bvardumptabs and mbvardumpfile can no longer be modified at runtime through the /flags builtin service. They can still be changed programmatically via google::SetCommandLineOption(), taking effect on the next dump cycle. The profiling duration of /pprof is now capped by the -maxprofilingseconds gflag (default 300 seconds), which can be adjusted by the server owner.

Affected Software

1 affected component
Apache bRPC<1.18.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Apache bRPC to a version that resolves this vulnerability.

    Fixed in 1.18.0

Event History

Oct 21, 2026
CVE Published
via MITRE·12:16 PM
Data Sourced
via MITRE·12:16 PM
DescriptionWeakness

Frequently Asked Questions

1

Which deployments are exposed to remote exploitation?

Apache bRPC versions earlier than 1.18.0 are affected on all platforms if an attacker can reach the builtin service port. The attacker does not need local access according to the available information.

2

What access does an attacker need to alter dump output paths?

The attacker needs network access to the builtin service port and the ability to send requests to the builtin /flags service. They can change the relevant runtime flags through the setvalue parameter and then enable dumping.

3

How can I determine whether an instance is affected?

Check whether the deployed Apache bRPC version is earlier than 1.18.0 and whether its builtin service port is reachable by untrusted parties. Such instances are affected on all platforms.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203