---
id: "CVE-2026-66392"
kind: "vulnerability"
aliases: ["CVE-2026-66392"]
title: "Apache bRPC: TLS clients accept certificates issued for other hostnames"
severity: "medium"
cvss: null
epss: 0.00101
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["brpc", "c++", "rpc", "runtime", "self-hosted", "tls"]
not_affected_if: ["brpc-version-1.18.0-or-later", "no-tls-client-channels", "trusted-network-only"]
published_at: "2026-10-21T12:17:22+00:00"
first_seen_at: "2026-10-23T21:57:28+00:00"
updated_at: "2026-10-25T05:02:44+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-66392", "first_seen_at": "2026-10-23T21:57:28+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-66392", "first_seen_at": "2026-10-24T13:15:54+00:00"}]
---

# Apache bRPC: TLS clients accept certificates issued for other hostnames

Apache bRPC before 1.18.0 checks the certificate chain on client TLS connections but does not check that the certificate names the host being connected to. A network attacker holding a certificate from a CA the client trusts can impersonate the target endpoint.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `grep -ri brpc` in the project's dependency manifests or lockfiles and check the bRPC version in use
- Look for client Channels that connect over TLS with VERIFY_PEER enabled and a positive verify_depth, especially ones reaching untrusted networks
- Check whether the trusted CA store includes CAs that can issue certificates for names beyond the intended endpoint

## Fix

- Upgrade Apache bRPC to `1.18.0` or later
- Enable VERIFY_PEER with a positive verify_depth on client Channels
- Set VerifyOptions::expected_peer_name when the certificate name differs from the Channel URL host
- Alternatively apply the patch from https://github.com/apache/brpc/pull/3408

## Timeline

- 2026-10-23T21:57:28+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-66392
- 2026-10-24T13:15:54+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-66392

## From the sources

Apache bRPC versions before 1.18.0 validate the server certificate chain when client TLS peer verification is enabled, but do not bind the certificate to an expected DNS name or IP address. A network attacker who can redirect or intercept a connection and who possesses a certificate issued by a CA trusted by the client for another name may impersonate the requested TLS endpoint.


Affected Scenarios:
Applications use a bRPC client Channel to connect to an untrusted network with certificate verification enabled and trust a CA that can issue certificates for identities other than the intended endpoint.


How to Fix:
Upgrade to Apache bRPC 1.18.0 and enable VERIFY_PEER with a positive verify_depth. HTTPS Channels automatically verify the certificate against the host in the Channel URL. Callers may set VerifyOptions::expected_peer_name explicitly when the certificate identity differs from the URL host. Alternatively, apply the patch from  https://github.com/apache/brpc/pull/3408 .

Note:
The new option performs DNS SAN or IP SAN verification during the TLS handshake. Configurations that set expected_peer_name while peer verification is disabled are rejected.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
