CVE-2026-74755
Full vulnerability record from the local CVENow database.
Description
An integer underflow in the mcpack2pb component of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to crash a bRPC server by sending a request containing a string field with a zero value_size. The UnparsedValue::as_string() function computes `_size - 1` without validating `_size`; when value_size is 0 the expression underflows to SIZE_MAX, resize() throws std::length_error, and because the exception is not caught on the request parsing path the process aborts (SIGABRT). Root Cause: In src/mcpack2pb/parser.cpp, UnparsedValue::as_string() resizes the output string to `_size - 1`, where `_size` is the value_size of a string field taken directly from the network data. A value_size of 0 underflows the unsigned size_t, and the subsequent resize() throws an exception that is not caught. Affected Scenarios: bRPC servers that accept nshead frames wired to the ubrpc mcpack2 adaptor (for example the NsheadService + UbrpcMcpack2Adaptor deployment pattern) can be crashed by a single unauthenticated request. Stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so default server configurations are not affected. How to Fix: 1. Upgrade bRPC to a version that includes this fix. 2. Apply the patch in PR https://github.com/apache/brpc/pull/3450
View original CVE JSON
{
"id": "CVE-2026-74755",
"sourceIdentifier": "[email protected]",
"published": "2026-10-21T12:17:22.550",
"lastModified": "2026-10-26T21:10:00.170",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "An integer underflow in the mcpack2pb component of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to crash a bRPC server by sending a request containing a string field with a zero value_size. The UnparsedValue::as_string() function computes `_size - 1` without validating `_size`; when value_size is 0 the expression underflows to SIZE_MAX, resize() throws std::length_error, and because the exception is not caught on the request parsing path the process aborts (SIGABRT).\n\nRoot Cause:\nIn src/mcpack2pb/parser.cpp, UnparsedValue::as_string() resizes the output string to `_size - 1`, where `_size` is the value_size of a string field taken directly from the network data. A value_size of 0 underflows the unsigned size_t, and the subsequent resize() throws an exception that is not caught.\n\nAffected Scenarios:\nbRPC servers that accept nshead frames wired to the ubrpc mcpack2 adaptor (for example the NsheadService + UbrpcMcpack2Adaptor deployment pattern) can be crashed by a single unauthenticated request. Stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so default server configurations are not affected.\n\nHow to Fix:\n1. Upgrade bRPC to a version that includes this fix.\n2. Apply the patch in PR https://github.com/apache/brpc/pull/3450"
},
{
"lang": "es",
"value": "Una vulnerabilidad de desbordamiento por entero en el componente mcpack2pb de Apache bRPC (versión anterior a la 1.18.0) en todas las plataformas permite a atacantes remotos bloquear un servidor bRPC enviando una solicitud que contiene un campo de cadena con un value_size igual a cero. La función UnparsedValue::as_string() calcula “_size - 1” sin validar “_size”; cuando value_size es 0 la expresión desborda a SIZE_MAX, resize() lanza std::length_error y, como la excepción no se captura en la ruta de análisis de la solicitud, el proceso aborta (SIGABRT).\\n\\nCausa raíz:\\nEn src/mcpack2pb/parser.cpp, UnparsedValue::as_string() redimensiona la cadena de salida a “_size - 1”, donde “_size” es el value_size de un campo de cadena tomado directamente de los datos de la red. Un value_size de 0 desborda el size_t sin signo, y el posterior resize() lanza una excepción que no se captura.\\n\\nEscenarios afectados:\\nLos servidores bRPC que aceptan tramas nshead conectadas al adaptador ubrpc mcpack2 (por ejemplo, el patrón de despliegue NsheadService + UbrpcMcpack2Adaptor) pueden ser bloqueados por una única solicitud no autenticada. La versión de código abierto de bRPC registra los protocolos ubrpc/nshead_mcpack como solo cliente, por lo que las configuraciones de servidor predeterminadas no se ven afectadas.\\n\\nCómo corregir:\\n1. Actualizar bRPC a una versión que incluya esta corrección. \\n2. Aplicar el parche en PR https://github.com/apache/brpc/pull/3450"
}
],
"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-191"
}
]
}
],
"references": [
{
"url": "https://lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb",
"source": "[email protected]"
}
]
}