rabbitmq-c is a C-language AMQP client library for RabbitMQ. Prior to 0.16.0, a malicious AMQP server can send an undersized connection.tune.frame_max value during amqp_login(), and rabbitmq-c accepts the value in amqp_login_inner() in librabbitmq/amqp_socket.c. amqp_tune_connection() in librabbitmq/amqp_connection.c uses frame_max to reallocate the outbound buffer without enforcing AMQP_FRAME_MIN_SIZE. Immediate serialization of connection.tune-ok through amqp_frame_to_bytes() writes beyond the undersized heap allocation, causing memory corruption and likely denial of service. An on-path attacker can also trigger the flaw against plaintext AMQP traffic. Code execution is theoretically possible but was not demonstrated. This issue is fixed in version 0.16.0.
A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Red Hat Enterprise Linux 10 | RedHat | librabbitmq-0:0.14.0-3.el10_2.1 | * |
| Red Hat Enterprise Linux 8 | RedHat | librabbitmq-0:0.9.0-6.el8_10 | * |
| Red Hat Enterprise Linux 8 | RedHat | librabbitmq-0:0.9.0-6.el8_10 | * |
| Red Hat Enterprise Linux 9 | RedHat | librabbitmq-0:0.11.0-7.el9_8.1 | * |
| Librabbitmq | Ubuntu | esm-apps-legacy/xenial | * |
| Librabbitmq | Ubuntu | esm-apps/bionic | * |
| Librabbitmq | Ubuntu | esm-infra-legacy/trusty | * |
| Librabbitmq | Ubuntu | esm-infra/focal | * |
| Librabbitmq | Ubuntu | jammy | * |
| Librabbitmq | Ubuntu | noble | * |
| Librabbitmq | Ubuntu | questing | * |
| Librabbitmq | Ubuntu | resolute | * |
| Librabbitmq | Ubuntu | upstream | * |