CVE-2025-54472

Unlimited memory allocation in redis protocol parser in Apache bRPC (all versions < 1.14.1) on all platforms allows attackers to crash the service via network. Root Cause: In the bRPC Redis protocol parser code, memory for arrays or strings of corresponding sizes is allocated based on the integers read from the network. If the integer read from the network is too large, it may cause a bad alloc error and lead to the program crashing. Attackers can exploit this feature by sending special data packets to the bRPC service to carry out a denial-of-service attack on it. The bRPC 1.14.0 version tried to fix this issue by limited the memory allocation size, however, the limitation checking code is not well implemented that may cause integer overflow and evade such limitation. So the 1.14.0 version is also vulnerable, although the integer range that affect version 1.14.0 is different from that affect version < 1.14.0. Affected scenarios: Using bRPC as a Redis server to provide network services to untrusted clients, or using bRPC as a Redis client to call untrusted Redis services. How to Fix: we provide two methods, you can choose one of them: 1. Upgrade bRPC to version 1.14.1. 2. Apply this patch ( https://github.com/apache/brpc/pull/3050 ) manually. No matter you choose which method, you should note that the patch limits the maximum length of memory allocated for each time in the bRPC Redis parser. The default limit is 64M. If some of you redis request or response have a size larger than 64M, you might encounter error after upgrade. For such case, you can modify the gflag redis_max_allocation_size to set a larger limit.
Configurations

No configuration.

History

14 Aug 2025, 15:15

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.5

14 Aug 2025, 13:11

Type Values Removed Values Added
Summary
  • (es) La asignación ilimitada de memoria en el analizador de protocolo Redis de Apache bRPC (todas las versiones anteriores a la 1.14.1) en todas las plataformas permite a los atacantes bloquear el servicio a través de la red. Causa raíz: En el código del analizador de protocolo Redis de bRPC, la memoria para matrices o cadenas de tamaños correspondientes se asigna en función de los enteros leídos de la red. Si el entero leído de la red es demasiado grande, puede causar un error de asignación incorrecta y provocar el bloqueo del programa. Los atacantes pueden explotar esta característica enviando paquetes de datos especiales al servicio bRPC para llevar a cabo un ataque de denegación de servicio. La versión bRPC 1.14.0 intentó solucionar este problema limitando el tamaño de la asignación de memoria; sin embargo, el código de comprobación de limitaciones no está bien implementado, lo que puede causar un desbordamiento de enteros y evadir dicha limitación. Por lo tanto, la versión 1.14.0 también es vulnerable, aunque el rango de enteros que afecta a la versión 1.14.0 es diferente al que afecta a la versión anterior. Escenarios afectados: Usar bRPC como servidor Redis para proporcionar servicios de red a clientes no confiables, o usar bRPC como cliente Redis para llamar a servicios Redis no confiables. Cómo solucionarlo: ofrecemos dos métodos, puede elegir uno de ellos: 1. Actualice bRPC a la versión 1.14.1. 2. Aplique este parche (https://github.com/apache/brpc/pull/3050) manualmente. Independientemente del método que elija, debe tener en cuenta que el parche limita la longitud máxima de memoria asignada para cada vez en el analizador Redis de bRPC. El límite predeterminado es 64M. Si alguna de sus solicitudes o respuestas de Redis tiene un tamaño mayor a 64M, podría encontrar un error después de la actualización. Para tal caso, puede modificar el gflag redis_max_allocation_size para establecer un límite mayor.

14 Aug 2025, 09:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-08-14 09:15

Updated : 2025-08-14 15:15


NVD link : CVE-2025-54472

Mitre link : CVE-2025-54472

CVE.ORG link : CVE-2025-54472


JSON object : View

Products Affected

No product.

CWE
CWE-190

Integer Overflow or Wraparound

CWE-400

Uncontrolled Resource Consumption