CVE-2026-78066
Full vulnerability record from the local CVENow database.
Description
Resource exhaustion in Apache bRPC (version < 1.18.0) on all platforms: multiple parsers that accept wire-controlled input bound no limit on the sizes declared by the client or on decompressed output, which attackers can use to drive disproportionate memory use and crash the process. Root Cause: 1) The gzip/zlib/snappy decompressors enforce no output limit: -max_body_size is checked against the compressed bytes only, so a cap-compliant body (e.g. 64 MiB) can decompress to tens of GiB. 2) The AMF string readers allocate the declared length before the bytes are actually available. 3) RTMP chunk headers may re-declare a message length mid-stream; the declared length was never bounded and the partial reassembly buffer kept growing. 4) The sofa-pbrpc parser does not bound meta_size. 5) mcpack2pb trusts wire-declared item counts for Reserve() and a string value_size of 0 underflows the buffer size, aborting the process. Affected Scenarios: Any bRPC service accepting gzip/zlib/snappy-compressed bodies or rtmp, sofa-pbrpc, or mcpack2pb messages from untrusted clients. 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/3476 Note: After the fix, requests whose decompressed size, RTMP message length, or mcpack declared count exceed the new limits are rejected. Operators who legitimately need larger values can raise the corresponding flag (-max_decompressed_body_size, max_body_size).
View original CVE JSON
{
"id": "CVE-2026-78066",
"sourceIdentifier": "[email protected]",
"published": "2026-10-21T12:17:23.527",
"lastModified": "2026-10-30T17:17:29.110",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Resource exhaustion in Apache bRPC (version < 1.18.0) on all platforms: multiple parsers that accept wire-controlled input bound no limit on the sizes declared by the client or on decompressed output, which attackers can use to drive disproportionate memory use and crash the process.\n\nRoot Cause:\n1) The gzip/zlib/snappy decompressors enforce no output limit: -max_body_size is checked against the compressed bytes only, so a cap-compliant body (e.g. 64 MiB) can decompress to tens of GiB.\n2) The AMF string readers allocate the declared length before the bytes are actually available.\n3) RTMP chunk headers may re-declare a message length mid-stream; the declared length was never bounded and the partial reassembly buffer kept growing.\n4) The sofa-pbrpc parser does not bound meta_size.\n5) mcpack2pb trusts wire-declared item counts for Reserve() and a string value_size of 0 underflows the buffer size, aborting the process.\n\nAffected Scenarios:\nAny bRPC service accepting gzip/zlib/snappy-compressed bodies or rtmp, sofa-pbrpc, or mcpack2pb messages from untrusted clients.\n\nHow to Fix:(Choose one of the following options) 1. Upgrade bRPC to version 1.18.0, which fixes this issue.\n\n2. Apply this patch: https://github.com/apache/brpc/pull/3476\n\nNote:\nAfter the fix, requests whose decompressed size, RTMP message length, or mcpack declared count exceed the new limits are rejected. Operators who legitimately need larger values can raise the corresponding flag (-max_decompressed_body_size, max_body_size)."
},
{
"lang": "es",
"value": "Agotamiento de recursos en Apache bRPC (versiones anteriores a la 1.18.0) en todas las plataformas: varios analizadores que aceptan entrada controlada por el cable no imponen límite en los tamaños declarados por el cliente o en la salida descomprimida, lo que los atacantes pueden usar para generar un uso desproporcionado de memoria y provocar el bloqueo del proceso.\\n\\nCausa raíz:\\n1) Los descompresores gzip/zlib/snappy no imponen límite de salida: -max_body_size solo se verifica contra los bytes comprimidos, de modo que un cuerpo que cumple el límite (p. ej., 64?MiB) puede descomprimirse a decenas de GiB.\\n2) Los lectores de cadenas AMF asignan la longitud declarada antes de que los bytes estén realmente disponibles.\\n3) Los encabezados de fragmentos RTMP pueden volver a declarar una longitud de mensaje a mitad del flujo; la longitud declarada nunca estuvo limitada y el búfer de reensamblado parcial siguió creciendo.\\n4) El analizador sofa-pbrpc no limita meta_size.\\n5) mcpack2pb confía en los recuentos de ítems declarados por el cable para Reserve() y un value_size de cadena de 0 provoca un subdesbordamiento del tamaño del búfer, abortando el proceso.\\n\\nEscenarios afectados:\\nCualquier servicio bRPC que acepte cuerpos comprimidos con gzip/zlib/snappy o mensajes rtmp, sofa-pbrpc o mcpack2pb de clientes no confiables.\\n\\nCómo corregir (elija una de las siguientes opciones):\\n1. Actualice bRPC a la versión 1.18.0, que corrige este problema.\\n2. Aplique este parche: https://github.com/apache/brpc/pull/3476\\n\\nNota:\\nDespués de la corrección, las solicitudes cuyo tamaño descomprimido, longitud de mensaje RTMP o recuento declarado por mcpack superen los nuevos límites son rechazadas. Los operadores que necesiten valores mayores de forma legítima pueden elevar la bandera correspondiente (-max_decompressed_body_size, max_body_size)."
}
],
"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-30T16:59:01.033553Z",
"id": "CVE-2026-78066",
"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]"
}
]
}