Descripción
rabbitmq-c es una biblioteca cliente AMQP en lenguaje C para RabbitMQ. Antes de la versión 0.17.0, existe un desbordamiento de búfer en el heap en rabbitmq-c cuando se utiliza la API pública amqp_send_frame() para serializar un AMQP_FRAME_BODY de tamaño excesivo. El problema se produce porque amqp_frame_to_bytes() copia frame.payload.body_fragment.len bytes en el búfer de salida de la conexión sin validar que el fragmento del cuerpo quepa en el búfer de trama asignado. Una aplicación que pase una trama de cuerpo de tamaño excesivo a amqp_send_frame() puede provocar una escritura fuera de límites en el heap, lo que resulta en la caída del proceso y corrupción de memoria. Este problema se corrigió en la versión 0.17.0.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- rabbitmq-c Afectadas: < 0.17.0
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/alanxz/rabbitmq-c/security/advisories/GHSA-hfjv-vcp3-39wh
- Referencia en github.comgithub.com/alanxz/rabbitmq-c/pull/892
- Referencia en github.comgithub.com/alanxz/rabbitmq-c/releases/tag/v0.17.0
Ver el texto original en inglés (CVE.org)
rabbitmq-c: Heap Buffer Overflow in amqp_send_frame() When Serializing Oversized AMQP_FRAME_BODY
rabbitmq-c is a C-language AMQP client library for RabbitMQ. Prior to version 0.17.0, a heap buffer overflow exists in rabbitmq-c when the public amqp_send_frame() API is used to serialize an oversized AMQP_FRAME_BODY. The issue occurs because amqp_frame_to_bytes() copies frame.payload.body_fragment.len bytes into the connection outbound buffer without validating that the body fragment fits within the allocated frame buffer. An application that passes an oversized body frame to amqp_send_frame() can trigger a heap out-of-bounds write, resulting in process crash and memory corruption. This issue has been patched in version 0.17.0.