CVE-2026-42789
published 2026-05-27CVE-2026-42789: Improper Following of a Certificate's Chain of Trust vulnerability in Erlang OTP public_key (pubkey_cert module) allows a non-CA certificate to be accepted as…
PriorityP428medium4.8CVSS 3.1
AVNACHPRNUINSUCLILAN
EPSS
0.32%
23.9th percentile
Improper Following of a Certificate's Chain of Trust vulnerability in Erlang OTP public_key (pubkey_cert module) allows a non-CA certificate to be accepted as an intermediate issuer, enabling certificate chain forgery.
In lib/public_key/src/pubkey_cert.erl, pubkey_cert:validate_extensions/7 contains two flaws that together allow a certificate with basicConstraints cA:false and no keyUsage extension to be used as an intermediate issuer in a chain passed to public_key:pkix_path_validation/3: the cA:false clause recurses into the remaining extensions without rejecting the certificate when it is in issuer position, and the keyUsage check only fires when the extension is present, so a certificate lacking keyUsage entirely bypasses the keyCertSign enforcement.
Any party holding an end-entity certificate with basicConstraints cA:false and no keyUsage extension, issued by any CA in the victim's trust store, can use that certificate's private key to sign forged leaf certificates for arbitrary identities. public_key:pkix_path_validation/3 accepts the resulting chain, and by extension every TLS or mTLS endpoint built on the OTP ssl application that relies on the default verifier is affected, including server identity verification on the client side and client certificate verification on mTLS servers.
This issue affects OTP from OTP 17.0 before OTP 26.2.5.21, 27.3.4.12, 28.5.0.1, and 29.0.1 corresponding to public_key from 0.22 before 1.15.1.7, 1.17.1.3, 1.20.3.1, and 1.21.1.
Affected
8 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | erlang | — | — |
| erlang | erlang_otp | >= 17.0 < 26.2.5.21 | 26.2.5.21 |
| erlang | erlang_otp | >= 27.0 < 27.3.4.12 | 27.3.4.12 |
| erlang | erlang_otp | >= 28.0 < 28.5.0.1 | 28.5.0.1 |
| erlang | erlang_otp | >= 29.0 < 29.0.1 | 29.0.1 |
| erlang | otp | >= 0.22 < * | * |
| erlang | otp | >= 17.0 < * | * |
| erlang | otp | >= 84adefa331c4159d432d22840663c38f155cd4c1 < * | * |
CVSS provenance
nvdv3.14.8MEDIUMCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
nvdv4.07.0HIGHCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vendor_redhat7.0HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
VulDB
Erlang OTP prior 29.0.1 TLS Endpoint pubkey_cert.erl certificate validation (GHSA-c99q-jmpx-v8qq)
vuldb·2026-06-07·CVSS 4.8
CVE-2026-42789 [MEDIUM] Erlang OTP prior 29.0.1 TLS Endpoint pubkey_cert.erl certificate validation (GHSA-c99q-jmpx-v8qq)
A vulnerability marked as problematic has been reported in Erlang OTP. This vulnerability affects unknown code in the library lib/public_key/src/pubkey_cert.erl of the component TLS Endpoint. This manipulation causes improper certificate validation.
This vulnerability is handled as CVE-2026-42789. The attack can be initiated remotely. There is not any exploit available.
It is suggested to upgrade the affected component.
Red Hat
erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation
vendor_redhat·2026-05-27·CVSS 7.0
CVE-2026-42789 [HIGH] CWE-295 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation
erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation
A flaw was found in Erlang OTP's public_key module. This vulnerability (CWE-295), related to improper certificate validation, allows a non-Certificate Authority (CA) certificate to be accepted as an intermediate issuer. A remote attacker, holding an end-entity certificate issued by a trusted CA, can exploit this by forging leaf certificates for arbitrary identities. This can lead to compromised server identity verification on the client side and client certificate verification on mutual Transport Layer Security (mTLS) servers, undermining the trust in certificate-based authentication.
Statement: This is an Important vulnerability where Erlang OTP's `public_key` module improperly validates certifi
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation [epel-all]
bugzilla·2026-06-03·CVSS 7.0
CVE-2026-42789 [HIGH] CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation [epel-all]
CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation [epel-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
Bugzilla
CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation [fedora-all]
bugzilla·2026-06-03·CVSS 7.0
CVE-2026-42789 [HIGH] CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation [fedora-all]
CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation [fedora-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
Discussion:
Fixed in `erlang-26.2.5.21` which is available for Fedora 43, 44, and rawhide (f45). The fix is included in `public_key-1.15.1.7` which ships with OTP 26.2.5.21. Closing as RAWHIDE; the fix will reach stable branches via Bodhi updates currently in testing.
Bugzilla
CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation
bugzilla·2026-05-27·CVSS 7.0
CVE-2026-42789 [HIGH] CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation
CVE-2026-42789 erlang: Erlang OTP public_key: Certificate chain forgery via improper trust chain validation
Improper Following of a Certificate's Chain of Trust vulnerability in Erlang OTP public_key (pubkey_cert module) allows a non-CA certificate to be accepted as an intermediate issuer, enabling certificate chain forgery.
In lib/public_key/src/pubkey_cert.erl, pubkey_cert:validate_extensions/7 contains two flaws that together allow a certificate with basicConstraints cA:false and no keyUsage extension to be used as an intermediate issuer in a chain passed to public_key:pkix_path_validation/3: the cA:false clause recurses into the remaining extensions without rejecting the certificate when it is in issuer position, and the keyUsage check only fires when the extension is present, so a c
https://cna.erlef.org/cves/CVE-2026-42789.htmlhttps://github.com/erlang/otp/commit/471cd2f664300a95353c467873800bbe706005dbhttps://github.com/erlang/otp/commit/59c8d824386b2eb1614ff9340624843ef6aca0fdhttps://github.com/erlang/otp/security/advisories/GHSA-c99q-jmpx-v8qqhttps://osv.dev/vulnerability/EEF-CVE-2026-42789https://www.erlang.org/doc/system/versions.html#order-of-versionshttps://access.redhat.com/security/cve/CVE-2026-42789https://bugzilla.redhat.com/show_bug.cgi?id=2482093https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-42789.json
2026-05-27
Published