RabbitMQ

Erlang 26 End of Life: Why Legacy RabbitMQ Is Now Unpatchable

A

AceMQ Engineering Team

RabbitMQ Consulting & Support

Erlang 26 End of Life: Why Legacy RabbitMQ Is Now Unpatchable

Version 26 reached end-of-life on 26 May 2026 and no longer receives security patches. Because the 3.13 line supports a maximum of 26.2.x, those deployments cannot move to a maintained runtime — the only way out is upgrading the broker itself.

That is the wedge. Not ordinary technical debt you can defer: an audit finding with a date on it.

The compatibility matrix

The published erlang version requirements, by broker series — a supported erlang version means both minimum and maximum:

SeriesMinimumMaximum
4.3.x27.027.x — v28 for brand-new clusters only
4.2.x26.2same ceiling; Erlang 28 is partially supported
4.1.x26.2same ceiling; v28 partially supported
4.0.x26.2same ceiling from 4.0.4
3.13.x26.026.2.x

The docs state it plainly: Erlang 26 has reached end of life and is no longer maintained. Anything on 3.9 or 3.8 is further behind again, and those RabbitMQ versions lost community support long ago.

Runtime dates per endoflife.date — security support ends:

ReleaseEnds
Erlang 25 and earlierPassed
Erlang 2626 May 2026 — passed
v2720 May 2027
v2820 May 2028
Compatibility matrix of RabbitMQ release series against minimum and maximum supported Erlang OTP versions

Why 3.13 cannot just move to the latest Erlang

The instinct on hearing "your runtime is unsupported" is to upgrade the runtime. Here you cannot.

The 3.13.x line tops out at 26.2.x. Install a newer runtime underneath and the broker will not start. So a 3.13 estate has two available states: an unsupported runtime, or a broker upgrade.

No configuration, backport, or patch resolves this from inside 3.13. The version support ceiling *is* the problem.

Diagram showing RabbitMQ 3.13 unable to reach Erlang 27 because its maximum supported runtime is Erlang 26.2

What the risk actually is

Be precise here, because overstating it is easy and wrong.

The Erlang/OTP SSH server carried a critical unauthenticated RCE in 2025 — CVSS 10.0, exploited in the wild by ransomware operators. RabbitMQ was not affected. It does not use that SSH library, and the packages the project distributes on GitHub omit it. Anyone claiming that CVE endangers your broker is wrong.

The exposure is structural, not specific. That incident proves the runtime does receive critical, actively exploited vulnerabilities. The next may land somewhere the broker genuinely depends on — TLS, OpenSSL bindings, the distribution layer — and past its support policy, no patch will be published for you.

Auditors understand that distinction. An unmaintained runtime under production messaging is a finding whether or not a CVE has landed yet.

Your options

1. Upgrade to 4.1.x or later

The direct route. Both 4.1 and 4.2 accept the current release, so broker and runtime resolve together. Sequence matters: latest 3.13 patch first, then the broker, then the runtime — rolling one node at a time so the cluster keeps serving.

Expect real work. Classic queue mirroring was removed in 4.0, so mirrored-queue redundancy has to become quorum queues first. See upgrading RabbitMQ 3.x to 4.x without downtime and our guide to RabbitMQ version support.

2. Move to a commercially supported broker

If the upgrade cannot happen this quarter — frozen change window, certified application, air-gapped estate — commercial RabbitMQ licensing provides a supported broker built against a maintained runtime, with security patches backported to the version you actually run.

Where community support has ended, this is the only path that keeps you defensible in an audit. It buys a supported position while you plan the migration properly.

3. Do nothing

Occasionally defensible for an isolated internal system with no regulatory exposure. Rarely right for anything customer-facing, and it should be a documented decision rather than a default.

Is RabbitMQ 3.13 still supported?

No. The 3.13 series has reached end of community support, and that is the second half of the

problem. Even setting the runtime aside, a 3.13 broker no longer receives security fixes from

the RabbitMQ project. The Erlang 26 end of life date compounds an exposure that already exists

rather than creating a new one.

This is why "we will upgrade Erlang and stay on 3.13" is not a plan. The broker and the runtime

are both out of support, and only one of them can be fixed without touching the other.

What happens on 26 May 2026?

Nothing breaks that day. This is the part teams consistently misread.

Erlang 26 keeps running exactly as it did. What stops is the supply of security patches from the

Erlang/OTP team. From that date, any vulnerability found in the runtime your broker depends on

has no official fix for your version. The risk does not arrive as an outage — it accumulates

quietly as unpatched CVEs, and it usually surfaces during an audit or a customer security review

rather than in monitoring.

That distinction matters for how you plan. There is no emergency on the day. There is a steadily

worsening compliance position from the day onward, and the cost of fixing it does not fall over

time.

Three ways out, ranked by disruption

1. Upgrade to RabbitMQ 4.1.x or later. The cleanest answer. It puts you on a supported broker

and a supported runtime in one move, and it is the only option that resolves both problems

permanently. Budget for the classic-to-quorum queue migration, which is the real work.

2. Move to a commercial build. If the upgrade cannot happen inside your compliance window,

a commercially supported distribution buys covered time on a maintained runtime while you plan

properly. This removes the deadline, not the upgrade.

3. Accept the risk with documentation. Occasionally defensible for an isolated, air-gapped

estate with a decommission date already agreed. It is a decision to record deliberately, not a

default to drift into.

What is not on the list is staying on 3.13 with Erlang 26 indefinitely and hoping the topic does

not come up. It comes up.

Check what you are running

rabbitmqctl status | grep -A2 Erlang

Or from a shell on any node — this also confirms what running RabbitMQ actually loaded:

erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell

Run it everywhere. Mixed runtimes across a cluster cause their own failures — the project recommends the same major release on every node, and drift produces errors that look like network faults. On RHEL and CentOS the zero-dependency Erlang RPM pins a known-good build; Ubuntu users should configure the project's apt repository rather than distribution packages, which lag badly.

While you are there, check TLS. Client peer verification is enabled by default in newer releases, so a TLS certificate and key pair that worked on an older build may need attention during the move — verification failures at cutover are a common surprise.

FAQ

Which runtime versions are supported?

The latest Erlang line is fully supported for current RabbitMQ releases. Erlang 28 is partially supported from 4.2 onward and permitted for brand-new 4.3 clusters. Erlang 26 has ended; 25 and older are long past.

Can RabbitMQ 3.13 run the newer runtime?

No. Its maximum is 26.2.x. Installing a later release under 3.13 is unsupported and the broker will not start correctly.

Is my broker vulnerable because the runtime is out of support?

Not to any specific published flaw today. The exposure is that future vulnerabilities will not be patched, and you cannot reach a patched runtime without upgrading the broker.

Does CVE-2025-32433 affect the broker?

No. It affects the Erlang/OTP SSH server, which RabbitMQ does not use, and the distributed packages exclude that library. The project published confirmation it is unaffected.

What is the minimum runtime for 4.1?

Version 26.2, with 27.x as the maximum. That range makes 4.1 the common upgrade target from 3.13 — it accepts a runtime you may already have while opening the path to a supported one.

Where is the official compatibility information?

The project publishes an erlang version requirements page covering every currently supported release, plus its release policy and support schedule. Check there before making a compliance decision.

Running 3.13 on an unmaintained runtime and need to know where you stand? AceMQ assesses legacy

estates, plans migration to a supported build, and provides

Sources

Free Consultation

Get Expert Eyes on Your RabbitMQ Cluster

Whether you're troubleshooting a production incident, planning a migration, or want a second opinion on your architecture — our team is ready. No pitch, just answers.

Email Us