Erlang/OTP 29.0.4

This release of Erlang/OTP can be built from source or installed using pre-built packages for your OS or third-party tools (such as kerl, asdf or mise).

docker run -it erlang:29.0.4
Patch Package OTP 29.0.4
Git Tag OTP-29.0.4
Date 2026-07-27
Issue Id
CVE-2026-42792
CVE-2026-47078
CVE-2026-54890
CVE-2026-55737
CVE-2026-55953
CVE-2026-58227
ERIERL-1341
GH-SA-622p-qfh6-c352
GH-SA-7xgh-gmgf-q2g7
System OTP
Release 29
Application
Potential Incompatibilities

Potential Incompatibilities #

OTP-20136
Application(s):
erts
Related Id(s):

PR-11386, CVE-2026-42792

Mitigated a denial of service attack in epmd.

Thanks to Ryan Moore for finding and responsibly disclosing this vulnerability to the Erlang/OTP project.

compiler-10.0.3 #

The compiler-10.0.3 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20261
Related Id(s):

GH-11368, PR-11374

compiler: Fix an internal consistency check failure with setelement

Full runtime dependencies of compiler-10.0.3

crypto-5.1, erts-13.0, kernel-8.4, stdlib-8.0

crypto-5.9.2 #

The crypto-5.9.2 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20239
Related Id(s):

PR-11239

Fixed crash in crypto:macN/5 when supplied MacLength was greater than length of what the underlying hash returned.

OTP-20241
Related Id(s):

PR-11330

Fixed segfault in crypto:aead_cipher_init_nif when argument validation fails.

OTP-20244
Related Id(s):

PR-11337

Fix cipher key buffer overread for chacha20_poly1305.

Full runtime dependencies of crypto-5.9.2

erts-9.0, kernel-6.0, stdlib-3.9

diameter-2.7.2 #

The diameter-2.7.2 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20242
Related Id(s):

PR-11331

Fix infinite loop in diameter_dist:route_session/2 when avp other than Session-Id has zero length.

OTP-20243
Related Id(s):

PR-11333

Fix crash in diameter_dist:route_session/2 when Session-Id (code: 263) avp has zero length.

Full runtime dependencies of diameter-2.7.2

erts-10.0, kernel-3.2, ssl-9.0, stdlib-5.0

erts-17.0.4 #

The erts-17.0.4 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20136
POTENTIAL INCOMPATIBILITY
 

Mitigated a denial of service attack in epmd.

Thanks to Ryan Moore for finding and responsibly disclosing this vulnerability to the Erlang/OTP project.

OTP-20214
Related Id(s):

PR-11297, CVE-2026-55737

Fixed heap corruption when an invalidly encoded tuple with an arity of 2^31 or larger is decoded from Erlang’s External Term Format (binary_to_term).

OTP-20257
Related Id(s):

GH-11319

When send_timeout is set and send_timeout_close is set to true, a ‘tcp_closed’ message is expected when the timeout occurs, but that (message) was not delivered. This has now been fixed.

OTP-20259
Related Id(s):

PR-11386, CVE-2026-54890

A crafted External Term Format (ETF) payload could crash the runtime system.

Thanks to Paul Guyot for finding and responsibly disclosing this vulnerability to the Erlang/OTP project.

OTP-20260
Related Id(s):

GH-11332, PR-11334

Fixed a rounding error in 16-bit float conversion.

Full runtime dependencies of erts-17.0.4

kernel-9.0, sasl-3.3, stdlib-4.1

megaco-4.9.1 #

The megaco-4.9.1 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20237
Related Id(s):

GH-SA-7xgh-gmgf-q2g7, PR-11323

Fixed a buffer overflow in the megaco flex scanner C driver. A property parm name exceeding 452 bytes in a text-encoded H.248 message could overflow a fixed-size error buffer, crashing the VM. The sprintf calls have been replaced with bounded snprintf.

Full runtime dependencies of megaco-4.9.1

asn1-3.0, debugger-4.0, erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5

public_key-1.21.4 #

The public_key-1.21.4 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20251
Related Id(s):

GH-SA-622p-qfh6-c352, PR-11372

A certificate chain with crafted policyMappings extensions could cause exponential memory consumption during path validation, exploitable via TLS handshake. Chains exceeding a node-count cap are now rejected with {bad_cert, policy_tree_exceeded}.

Full runtime dependencies of public_key-1.21.4

asn1-5.0, crypto-5.8, erts-13.0, kernel-8.0, stdlib-4.0

ssh-6.0.3 #

The ssh-6.0.3 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20229
Related Id(s):

PR-11303

DH key exchange now enforces strict bounds (1 < e/f < p-1, 1 < K < p-1) on all paths, matching OpenSSH and Go. No interop impact.

OTP-20258
Related Id(s):

ERIERL-1341, PR-11369

Validate DH group parameters (P, G) received from the server during DH-GEX key exchange. The client now rejects groups where P is smaller than 2048 bits or G is not in the range (1, P-1). The default minimum in dh_gex_limits has been raised to 2048 on both client and server.

Full runtime dependencies of ssh-6.0.3

crypto-5.7, erts-14.0, kernel-10.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-8.0

ssl-11.7.4 #

Note! The ssl-11.7.4 application cannot be applied independently of other applications on an arbitrary OTP 29 installation.

   On a full OTP 29 installation, also the following runtime
   dependency has to be satisfied:
   -- public_key-1.21.1 (first satisfied in OTP 29.0.1)
OTP-20240
Related Id(s):

PR-11336, CVE-2026-55953

Add pre TLS-1.3 client side validation of servers algorithm selection being part of clients offered algorithms, preventing in worst case MITM circumventing validation of server certificate tricking the client to trust the malicious MITM as it was a valid server. Note this check is already performed for TLS-1.3 clients.

OTP-20245
Related Id(s):

PR-11343, CVE-2026-58227

Prevent invalid cert chains to create cycles in chain building code used to handle chains that could be unordered or contain extraneous certs. This avoids a DoS attack possibility.

OTP-20248
Related Id(s):

PR-11341

Clarify that rsa_psk and anonymous key exchange algorithms are considered legacy. Also harden rsa_psk in same way as normal rsa key exchange.

OTP-20250
Related Id(s):

PR-27944

Harden SSL application to conform with best practice and RFC’s. This will mostly improve error messages and conserve memory usage.

OTP-20251
Related Id(s):

GH-SA-622p-qfh6-c352, PR-11372

A certificate chain with crafted policyMappings extensions could cause exponential memory consumption during path validation, exploitable via TLS handshake. Chains exceeding a node-count cap are now rejected with {bad_cert, policy_tree_exceeded}.

Full runtime dependencies of ssl-11.7.4

crypto-5.8, erts-16.0, inets-5.10.7, kernel-10.3, public_key-1.21.1, runtime_tools-1.15.1, stdlib-7.0

stdlib-8.0.3 #

The stdlib-8.0.3 application can be applied independently of other applications on a full OTP 29 installation.

OTP-20143
Related Id(s):

PR-11386, CVE-2026-47078

Fixed a bug where zip:unzip/1,2 and zip:extract/1,2 were vulnerable to a relative path traversal attack. A crafted zip archive containing entry names such as ../x/y could have caused files to be written outside the intended extraction directory.

Thanks to Jonatan Männchen and Zhang Delong for finding and responsibly disclosing this vulnerability to the Erlang/OTP project.

Full runtime dependencies of stdlib-8.0.3

compiler-5.0, crypto-4.5, erts-16.0.3, kernel-11.0, sasl-3.0, syntax_tools-3.2.1

Thanks To #

a1x-an, Jonatan Männchen