Skip to content

Atom exhaustion: to_atom on runtime-parameter component

Moderate
ansd published GHSA-73qp-fwh4-2q5g Jul 9, 2026

Software

rabbitmq-server

Affected versions

>= 4.2.0, < 4.2.7
>= 4.3.0, < 4.3.1

Patched versions

4.2.7
4.3.1

Description

Origin

This vulnerability was identified by Team RabbitMQ and/or other teams at Broadcom, not via a responsible disclosure from an external researcher.

Impact

lookup_component/1 calls rabbit_data_coercion:to_atom(Component) on the :component segment of the request URL, converting an attacker-supplied string into a new atom. Because the Erlang atom table is bounded and atoms are never garbage collected, an authorized policymaker issuing roughly one million requests with distinct component values can exhaust the atom table and crash the node, resulting in a denial of service.

Description

The runtime-parameters lookup path coerces the URL :component segment to an atom with rabbit_data_coercion:to_atom/1 in lookup_component/1 (deps/rabbit/src/rabbit_runtime_parameters.erl), creating a new atom for any previously unseen value. A safe helper, rabbit_registry:binary_to_type/1, which uses binary_to_existing_atom with a catch, already exists but is not used at this call site.

Preconditions

Exploitation requires policymaker privileges and roughly one million requests.

CVSS

CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N (6.9, Moderate). Fixed in 4.2.7, 4.3.1.

Severity

Moderate

CVE ID

No known CVE

Weaknesses

Uncontrolled Resource Consumption

The product does not properly control the allocation and maintenance of a limited resource. Learn more on MITRE.