On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port, the HTTP built-in service
Source GCVE Database
Not known to be exploited · CVSS 9.1 Critical : upgrade to 1.18.0 as a priority.
Data as of 30 Oct 2026, 21:06 UTC
Thin evidence
One scorer or none| CISA-ADP | CVSS 3.1 | 9.1 |
|---|
- EPSS
- 0.3% chance of exploitation in 30 days – higher than 25% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 1.18.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NExploitation evidence
Disclosed: evidence found.
CVE published 21 Oct 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade Apache bRPC and apache/brpc to 1.18.0.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| Apache bRPCapache/brpc | Affected
| Fixed in
|
GitHubapache/brpcpkg:github/apache/brpcOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade brpc to version 1.18.0 or apply the patch from PR https://github.com/apache/brpc/pull/3525. Users who serve normal (non-built-in, non-tabbed) services on internal_port must move those services to the port passed to Server::Start(). This ensures that internal_port only carries built-in and Tabbed services, preventing authentication bypass.
Description
A vulnerability in brpc::Server occurs when both ServerOptions.auth and ServerOptions.internal_port are set. The HTTP built-in service exemption on internal_port allows authentication bypass because VerifyHttpRequest() returns true without credential checks for built-in services on internal_port. This result is cached per connection, enabling an attacker to authenticate the entire connection by sending a request like GET /status first, then access ordinary authenticated services without valid credentials. The issue is fixed in version 1.18.0 by restricting internal_port to only built-in and Tabbed services and rejecting ordinary service requests with HTTP 403.