← Back to CVE Explorer

CVE-2026-78334

Full vulnerability record from the local CVENow database.

Description

Missing authentication in the streaming RPC path of Apache bRPC (version < 1.18.0) on all platforms allows a remote attacker to bypass server authentication and inject or deliver streaming frames, when a server is configured with an Authenticator. Root Cause: When authentication is configured, streaming RPC frames are consumed directly by the streaming parser (ParseStreamingMessage) and never pass through InputMessenger's authentication hook, so an unauthenticated peer can exchange frames without being authenticated. In addition, a server-accepted stream is bound lazily to the first frame that happens to carry its id, so a stream could accept a frame carrying its id from a socket other than the socket that created the stream. Affected Scenarios: A bRPC server configured with authentication that serves streaming RPC from an untrusted network, or a deployment where a foreign connection can impersonate a stream by id, can be made to accept unauthorized streaming frames. How to Fix: Upgrade bRPC to 1.18.0, which fixes this issue, or apply the patch in PR https://github.com/apache/brpc/pull/3481. Note: The fix rejects streaming frames on server sockets when configured authentication has not completed, and keeps server-accepted streams bound to the socket of their creating RPC and rejects frames arriving from another socket. Authenticated streaming RPC behavior and the wire format are unchanged; only unauthenticated or foreign-socket frames are now rejected.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
Published
2026-10-21 12:17:23.650000
Last modified
2026-10-26 23:10:00.183000
View original CVE JSON
{
  "id": "CVE-2026-78334",
  "sourceIdentifier": "[email protected]",
  "published": "2026-10-21T12:17:23.650",
  "lastModified": "2026-10-26T23:10:00.183",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Missing authentication in the streaming RPC path of Apache bRPC (version < 1.18.0) on all platforms allows a remote attacker to bypass server authentication and inject or deliver streaming frames, when a server is configured with an Authenticator.\n\nRoot Cause:\nWhen authentication is configured, streaming RPC frames are consumed directly by the streaming parser (ParseStreamingMessage) and never pass through InputMessenger's authentication hook, so an unauthenticated peer can exchange frames without being authenticated. In addition, a server-accepted stream is bound lazily to the first frame that happens to carry its id, so a stream could accept a frame carrying its id from a socket other than the socket that created the stream.\n\nAffected Scenarios:\nA bRPC server configured with authentication that serves streaming RPC from an untrusted network, or a deployment where a foreign connection can impersonate a stream by id, can be made to accept unauthorized streaming frames.\n\nHow to Fix:\nUpgrade bRPC to 1.18.0, which fixes this issue, or apply the patch in PR https://github.com/apache/brpc/pull/3481. \n\nNote:\nThe fix rejects streaming frames on server sockets when configured authentication has not completed, and keeps server-accepted streams bound to the socket of their creating RPC and rejects frames arriving from another socket. Authenticated streaming RPC behavior and the wire format are unchanged; only unauthenticated or foreign-socket frames are now rejected."
    },
    {
      "lang": "es",
      "value": "Falta de autenticación en la ruta RPC de streaming de Apache bRPC (versión anterior a 1.18.0) en todas las plataformas, lo que permite a un atacante remoto eludir la autenticación del servidor e inyectar o entregar tramas de streaming, cuando un servidor está configurado con un Autenticador.\\n\\nCausa raíz:\\nCuando la autenticación está configurada, las tramas RPC de streaming son consumidas directamente por el analizador de streaming (ParseStreamingMessage) y nunca pasan por el hook de autenticación de InputMessenger, de modo que un par no autenticado puede intercambiar tramas sin estar autenticado. Además, una transmisión aceptada por el servidor se vincula de forma perezosa a la primera trama que lleva su id, por lo que una transmisión podría aceptar una trama que lleva su id desde un socket distinto al socket que creó la transmisión.\\n\\nEscenarios afectados:\\nUn servidor bRPC configurado con autenticación que sirve RPC de streaming desde una red no confiable, o una implementación donde una conexión externa puede suplantar una transmisión por id, pueden ser inducidos a aceptar tramas de streaming no autorizadas.\\n\\nCómo corregir:\\nActualice bRPC a 1.18.0, que corrige este problema, o aplique el parche en PR https://github.com/apache/brpc/pull/3481.\\n\\nNota:\\nLa corrección rechaza tramas de streaming en los sockets del servidor cuando la autenticación configurada no ha finalizado, y mantiene las transmisiones aceptadas por el servidor vinculadas al socket de su RPC creadora, rechazando las tramas que provienen de otro socket. El comportamiento del RPC de streaming autenticado y el formato de la transmisión no cambian; solo se rechazan ahora las tramas no autenticadas o provenientes de sockets externos."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "Apache Software Foundation",
          "product": "Apache bRPC",
          "defaultStatus": "unaffected",
          "collectionURL": "https://github.com",
          "packageName": "apache/brpc",
          "packageURL": "pkg:github/apache/brpc",
          "versions": [
            {
              "version": "0",
              "lessThan": "1.18.0",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-306"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb",
      "source": "[email protected]"
    }
  ]
}