Horizon Alert
Summary of the vulnerability and why it matters
This vulnerability involves the brpc::Server, a technology used for building network services. Specifically, it allows unauthenticated remote attackers to bypass security controls and access internal services by exploiting a flaw in how authentication is handled for an internal port. The concern is that this could permit unauthorized access to sensitive internal functionalities.
- Bypasses authentication for internal services.
- Affects servers configured with specific internal port settings.
- Confirm if your internal services use this specific configuration.
Attack Path
How an attacker could exploit the issue
An attacker could reach an authenticated service without credentials by first sending a request to the internal port. This initial request bypasses authentication checks, and the server then treats all subsequent requests on the same connection as authenticated, even if they are for ordinary services. This allows the attacker to access sensitive information or perform unauthorized actions on the server.
- Network access required.
- Internal port request triggers bypass.
- Unauthorized service access.
Live Threat
Current exploitation, exposure, and threat context
When an authenticated brpc::Server is configured with both `ServerOptions.auth` and `ServerOptions.internal_port`, an attacker could bypass authentication. This occurs because the HTTP service exemption on the `internal_port` allows the server to grant full authentication for an entire connection based on the first message, regardless of subsequent requests. This could allow an attacker to access ordinary, non-built-in services without valid credentials.
- Authenticated services on `internal_port`.
- Abuse of initial connection authentication.
- Unauthorized access to ordinary services.
Operational Fix
Recommended remediation, mitigation, and detection steps
This vulnerability likely impacts platform or infrastructure teams responsible for the `brpc` service and its configuration, especially where `internal_port` is used with authentication. The first practical step is to identify all instances of the affected `brpc::Server` configuration, confirm if the `internal_port` is externally reachable, and determine the business criticality of any services exposed through it before planning remediation.
- Platform and infrastructure teams own the fix.
- Verify `internal_port` exposure and service criticality.
- Plan remediation based on identified risk.