🔍 CVE-2026-86249

9.1
CVSS Score
CRITICAL
2026-10-21
2026-10-30 17:17
✅ 완료

🇰🇷 한글 설명

brpc::Server에서 ServerOptions.auth와 ServerOptions.internal_port를 함께 설정한 경우, internal_port의 HTTP 내장 서비스 예외를 악용해 인증을 완전히 우회할 수 있습니다. 해당 검증 결과는 연결 단위로 고정(latch)되어, 첫 요청으로 인증된 연결에서는 이후 모든 요청이 VerifyHttpRequest() 검사 없이 처리됩니다.

💡 쉬운 설명

서버의 내부 포트에 먼저 일반적인 상태 조회 요청을 보내면 해당 연결 전체가 인증된 것으로 처리됩니다. 이후 같은 연결로 보내는 요청은 인증 없이 일반 서비스까지 접근할 수 있습니다.

🇺🇸 원문 (English)

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

📍 영향받는 시스템

ServerOptions.auth와 ServerOptions.internal_port를 함께 사용하는 brpc 서버 (1.18.0 이전 버전)

⚔️ 공격 벡터

internal_port에 GET /status 같은 내장 서비스 요청을 먼저 보내 연결을 인증시킨 뒤, 같은 연결로 일반 인증 서비스 요청을 전송

🛡️ 대응 방법

brpc 1.18.0 이상으로 업그레이드하거나 PR #3525 적용; 일반 서비스 요청은 Server::Start()에 전달한 포트로 이동

🔧 검증 코드

결과에 ServerOptions의 internal_port 설정이 나타나고 auth 설정과 함께 사용된다면 취약 가능성이 있으며, brpc 버전이 1.18.0 미만이면 업그레이드가 필요합니다.

Shell / Script
grep -rE 'internal_port' --include='*.cpp' --include='*.cc' --include='*.h' . 2>/dev/null | head -20

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

💻 영향받는 소프트웨어

Splunk MCP Server app