Medium [CVE-2026-87849] The Discovery naming-service reply parser in Apache bRPC (versions < 1.18.0) calls RapidJSON object-only accessors (FindMember) on JSON values without first validating that those values are objects
This medium-severity Apache Software Foundation advisory covers CVE-2026-87849; related products: Apache bRPC.
Aggregated and source-linked by VulniPulse. Data sources, validation and limitations.
VulniPulse record published Record updated
Get an email when Apache Software Foundation publishes the next one.
VulniPulse checks Apache Software Foundation's security advisories around the clock and emails you new ones with the severity, the fixed version and the vendor's link. First month free, then US$15/month; we email you before the first charge.
Summary
The Discovery naming-service reply parser in Apache bRPC (versions < 1.18.0) calls RapidJSON object-only accessors (FindMember) on JSON values without first validating that those values are objects.
A malformed Discovery response whose data/service members or instances list contain non-object entries (e.g. a bare integer) triggers the RapidJSON object-access precondition on the client, reading memory out of bounds and potentially crashing the bRPC client.
Root Cause: In src/brpc/policy/discovery_naming_service.cpp, DiscoveryNamingService::GetServers() and DiscoveryNames::ListDiscoveryNodes() access JSON values with member functions on non-object values.
RapidJSON only defines these operations for object types; invoking them on a non-object violates the class invariant and results in undefined behavior (out-of-bounds read), commonly crashing the process.
Affected Scenarios: An operator-configured (or compromised) Discovery backend returns a malformed /discovery/nodes or /discovery/fetchs response whose data/service/instance entries are not JSON objects, crashing any bRPC client that refreshes its server list.
How to Fix: 1.
Upgrade bRPC to version 1.18.0 or later, which fixes this issue. 2.
Apply this patch:
- Apache bRPC before 1.18.0
Official advisory · high-confidence parse· fetched 7 days ago·verify at source
Mitigation checklist
- Upgrade bRPC to version 1.18.0 or later, which fixes this issue.
- Apply this patch: https://github.com/apache/brpc/pull/3533 The fix validates that the Discovery response data, per-service data, and instance entries are JSON objects (and skips non-object node/instance entries and rejects non-object data/service values) before calling member accessors.
Official advisory · high-confidence parse· fetched 7 days ago·verify at source
More Apache Software Foundation advisories
- CVE-2026-90484Oct 21, 2026The MySQL client response parser in Apache bRPC dereferences a null pointer
- CVE-2026-86249Oct 21, 2026On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port
- CVE-2026-86147Oct 21, 2026External control of file name or path and uncontrolled resource consumption in Apache bRPC
- CVE-2026-86146Oct 21, 2026Inconsistent interpretation of HTTP requests (HTTP request/response smuggling)
- CVE-2026-84748Oct 21, 2026Improper authorization in Apache bRPC (versions < 1.18.0) on all platforms allows remote
- CVE-2026-84747Oct 21, 2026Interpretation conflict in the HTTP protocol implementation in Apache bRPC
Android app · Google Play
Monitor future Apache Software Foundation CVEs from your phone.
Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 34 official vendor sources and 160+ reviewed platform categories.
Discussion(0)
No comments yet. Share field notes, upgrade gotchas, or questions — verify against the vendor advisory before acting on community advice.
Sign in to join the discussion.