← Back to CVE Explorer

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

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
Published
2026-10-21 12:17:22.550000
Last modified
2026-10-26 21:10:00.170000
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]"
    }
  ]
}