Description
On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port, the HTTP built-in service exemption on internal_port can be abused to bypass authentication entirely. VerifyHttpRequest() returns true without checking any credential when a built-in service is requested on internal_port, and this verdict is not per - request: verification runs only for the first message of a connection and the result latches the connection. Sending a request such as GET /status to internal_port first authenticates the whole connection, after which every subsequent request dispatched on the same connection is handled without ever calling VerifyHttpRequest(). This lets a remote attacker reach ordinary (non-built-in, non-tabbed) authenticated services without supplying valid credentials whenever the server uses ServerOptions.internal_port together with an Authenticator. The fix restricts internal_port so that it carries only built-in and Tabbed services; requests for ordinary services sent to internal_port are rejected with EPREM / HTTP 403. 



Mitigation / Fix: upgrade to 1.18.0 or apply PR https://github.com/apache/brpc/pull/3525 . 



Users who rely on serving normal services on internal_port must move those requests to the port passed to Server::Start().
Published: 2026-10-21
Score: n/a
EPSS: n/a
KEV: No
Impact: Authentication bypass
Action: Patch now
AI Analysis

Impact

The vulnerability exists in Apache bRPC when both ServerOptions.auth and ServerOptions.internal_port are enabled. In this configuration, the internal_port exemption allows a built‑in service request to authenticate a connection without checking credentials, and this verification result latches for the entire connection. A remote attacker can send an initial request, such as GET /status, to gain authentication, and then issue further requests to standard services on the same connection, bypassing authentication entirely. This results in unauthenticated access to ordinary services, compromising confidentiality and integrity of data served over the affected ports.

Affected Systems

The issue affects any Apache bRPC server that enables both authentication and an internal_port configuration. This includes all deployed Apache bRPC instances that use ServerOptions.auth together with ServerOptions.internal_port, regardless of version prior to the 1.18.0 fix, and applies to all system architectures supported by the bRPC library.

Risk and Exploitability

The vulnerability allows remote attackers to bypass authentication and gain unauthorized access to services over HTTP. No EPSS score is available, and the vulnerability is not listed in the CISA KEV catalog; however, the severity is high due to the complete loss of authentication controls. The attack can be carried out over any network path that exposes the internal_port, making it possible for an attacker to initiate the exploit from an external location without additional credentials.

Generated by OpenCVE AI on October 21, 2026 at 18:44 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Apache bRPC to version 1.18.0 or later, which enforces authentication checks for services accessed via internal_port.
  • If an immediate upgrade is not possible, apply the patch from PR 3525 and rebuild the server to restrict internal_port to built‑in and Tabbed services.
  • Reconfigure the server so that normal services are served on the port returned by Server::Start() rather than on internal_port, ensuring that only built‑in services use internal_port.

Generated by OpenCVE AI on October 21, 2026 at 18:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 21 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Description On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port, the HTTP built-in service exemption on internal_port can be abused to bypass authentication entirely. VerifyHttpRequest() returns true without checking any credential when a built-in service is requested on internal_port, and this verdict is not per - request: verification runs only for the first message of a connection and the result latches the connection. Sending a request such as GET /status to internal_port first authenticates the whole connection, after which every subsequent request dispatched on the same connection is handled without ever calling VerifyHttpRequest(). This lets a remote attacker reach ordinary (non-built-in, non-tabbed) authenticated services without supplying valid credentials whenever the server uses ServerOptions.internal_port together with an Authenticator. The fix restricts internal_port so that it carries only built-in and Tabbed services; requests for ordinary services sent to internal_port are rejected with EPREM / HTTP 403.  Mitigation / Fix: upgrade to 1.18.0 or apply PR https://github.com/apache/brpc/pull/3525 .  Users who rely on serving normal services on internal_port must move those requests to the port passed to Server::Start().
Title Apache bRPC: Authentication bypass when a server sets ServerOptions.internal_port and ServerOptions.auth
Weaknesses CWE-287
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-10-21T12:17:42.903Z

Reserved: 2026-09-06T11:17:57.587Z

Link: CVE-2026-86249

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-21T13:20:04.470

Modified: 2026-10-21T13:20:04.470

Link: CVE-2026-86249

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T18:45:07Z

Weaknesses