CVE-2026-80463
Full vulnerability record from the local CVENow database.
Description
Unbounded memory accumulation in the stream message reassembly path of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to exhaust the memory of a server (denial of service) by sending an endless sequence of continuation data frames. Root Cause: The streaming RPC protocol bounds every single data frame by max_body_size, but a fragmented stream message accumulates continuation frames into one buffer (_pending_buf) without any limit on the accumulated size. A malicious peer that can open a stream can therefore keep sending continuation frames to make the receiver accumulate an arbitrarily large in-memory message. Since the default flow-control settings (socket_max_streams_unconsumed_bytes=0) do not throttle the sending rate, the receiver's memory grows until the process runs out of memory and crashes or becomes unavailable. Affected Scenarios: Services that accept streams from untrusted clients (for example using brpc::StreamAccept or brpc::StreamCreate with the built-in streaming protocol) are affected. How to Fix: (Choose one of the following options) 1. Upgrade bRPC to version 1.18.0, which fixes this issue. 2. Apply this patch: https://github.com/apache/brpc/pull/3489 Note: The fix limits the accumulated payload of a fragmented stream message to max_body_size (default 64MB). When the accumulated payload exceeds the limit, the pending fragments are released and the stream is closed with error EMSGSIZE. After applying the fix, legitimate fragmented stream messages larger than max_body_size will be rejected; you can adjust the gflag max_body_size to change the limit.
View original CVE JSON
{
"id": "CVE-2026-80463",
"sourceIdentifier": "[email protected]",
"published": "2026-10-21T12:17:24.093",
"lastModified": "2026-10-30T15:16:55.067",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Unbounded memory accumulation in the stream message reassembly path of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to exhaust the memory of a server (denial of service) by sending an endless sequence of continuation data frames.\n\nRoot Cause:\nThe streaming RPC protocol bounds every single data frame by max_body_size, but a fragmented stream message accumulates continuation frames into one buffer (_pending_buf) without any limit on the accumulated size. A malicious peer that can open a stream can therefore keep sending continuation frames to make the receiver accumulate an arbitrarily large in-memory message. Since the default flow-control settings (socket_max_streams_unconsumed_bytes=0) do not throttle the sending rate, the receiver's memory grows until the process runs out of memory and crashes or becomes unavailable.\n\nAffected Scenarios:\nServices that accept streams from untrusted clients (for example using brpc::StreamAccept or brpc::StreamCreate with the built-in streaming protocol) are affected.\n\n\nHow to Fix:\n(Choose one of the following options)\n1. Upgrade bRPC to version 1.18.0, which fixes this issue.\n2. Apply this patch: https://github.com/apache/brpc/pull/3489 \n\n\nNote:\nThe fix limits the accumulated payload of a fragmented stream message to max_body_size (default 64MB). When the accumulated payload exceeds the limit, the pending fragments are released and the stream is closed with error EMSGSIZE. After applying the fix, legitimate fragmented stream messages larger than max_body_size will be rejected; you can adjust the gflag max_body_size to change the limit."
},
{
"lang": "es",
"value": "Acumulación ilimitada de memoria en la ruta de reensamblado de mensajes de flujo de Apache bRPC (versiones anteriores a 1.18.0) en todas las plataformas permite a atacantes remotos agotar la memoria de un servidor (denegación de servicio) enviando una secuencia interminable de tramas de datos de continuación.\\n\\nCausa raíz:\\nEl protocolo RPC de flujo limita cada trama de datos individual mediante max_body_size, pero un mensaje de flujo fragmentado acumula tramas de continuación en un único búfer (_pending_buf) sin ningún límite en el tamaño acumulado. Un par malicioso que pueda abrir un flujo puede, por lo tanto, seguir enviando tramas de continuación para que el receptor acumule un mensaje en memoria arbitrariamente grande. Dado que la configuración predeterminada de control de flujo (socket_max_streams_unconsumed_bytes=0) no regula la velocidad de envío, la memoria del receptor crece hasta que el proceso se queda sin memoria y se bloquea o deja de estar disponible.\\n\\nEscenarios afectados:\\nLos servicios que aceptan flujos de clientes no confiables (por ejemplo, mediante brpc::StreamAccept o brpc::StreamCreate con el protocolo de flujo incorporado) se ven afectados.\\n\\nCómo corregir:\\n(Elegir una de las siguientes opciones)\\n1. Actualizar bRPC a la versión 1.18.0, que corrige este problema.\\n2. Aplicar este parche: https://github.com/apache/brpc/pull/3489\\n\\nNota:\\nLa corrección limita la carga acumulada de un mensaje de flujo fragmentado a max_body_size (por defecto 64?MB). Cuando la carga acumulada supera el límite, los fragmentos pendientes se liberan y el flujo se cierra con el error EMSGSIZE. Después de aplicar la corrección, los mensajes de flujo fragmentados legítimos que superen max_body_size serán rechazados; puede ajustar la gflag max_body_size para cambiar el límite."
}
],
"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": {
"cvssMetricV31": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "NONE",
"integrityImpact": "NONE",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 3.9,
"impactScore": 3.6
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-10-30T14:18:23.768608Z",
"id": "CVE-2026-80463",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-770"
}
]
}
],
"references": [
{
"url": "https://lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb",
"source": "[email protected]"
}
]
}