---
id: CVE-2026-86249
title: >-
  Apache bRPC: Authentication bypass when a server sets
  ServerOptions.internal_port and ServerOptions.auth
summary: >-
  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 …
severity: none
cwe:
  - CWE-287
vendor: Apache Software Foundation
product: apache/brpc
affected:
  - apache/brpc < 1.18.0
published: '2026-10-21'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:17:42.903Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-86249'
references:
  - url: 'https://github.com/apache/brpc/pulls/3525'
    label: PR-3525
  - url: 'https://lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb'
tags:
  - cve.org
ingestedAt: '2026-10-21T12:48:53.754Z'
---

## Overview

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().

## Affected

- `apache/brpc < 1.18.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
