Skip to content
OpenAdvisories
High · 7.6 CVE-2026-42790 EUVD-2026-32558

nameConstraints DNS bypass via subject CommonName fallback in public_key hostname verification

Published May 27, 2026 · Updated Nov 11, 2026 · Assigned by EEF

Description

Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_cert and public_key modules) allows a DNS nameConstraints bypass via subject CommonName fallback in TLS hostname verification.

Two flaws combine to allow a subordinate CA whose DNS nameConstraints are restricted (e.g. permitted;DNS:allowed.example.com) to issue a leaf certificate that an OTP TLS client accepts as a valid identity for an out-of-scope hostname (e.g. victim.example.com):

First, pubkey_cert:validate_names/6 in lib/public_key/src/pubkey_cert.erl only checks SAN DNS entries against nameConstraints. Per RFC 5280, a permitted DNS subtree only restricts certificates that contain a DNS-typed name. A leaf with no subjectAltName therefore trivially satisfies any permitted;DNS:... constraint regardless of its subject commonName.

Second, public_key:pkix_verify_hostname/3 in lib/public_key/src/public_key.erl falls back to the subject commonName when no subjectAltName is present, extracting id-at-commonName attributes as presented IDs and matching them against the reference hostname. The strict pkix_verify_hostname_match_fun(https) matcher does not suppress this fallback.

The result is that path validation accepts a CN-only leaf under a DNS-constrained intermediate (no SAN means the nameConstraints are not triggered), and hostname verification then accepts it via the CN fallback. The bypass is reachable from stock ssl:connect with verify_peer, a trusted CA, SNI, and the canonical strict https hostname matcher.

This issue affects OTP from OTP 19.3 before OTP 26.2.5.21, OTP 27.3.4.12, OTP 28.5.0.1, and OTP 29.0.1, corresponding to public_key from 1.4 before 1.15.1.7, 1.17.1.3, 1.20.3.1, and 1.21.1.

Affected products

VendorProductAffectedFixed
Erlang OTP 19.3, 1.4 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 erlang 1:27.3.4.12+dfsg-1 —
Debian 13 erlang 1:27.3.4.1+dfsg-1+deb13u3 —
Debian 12 erlang No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.04 LTS erlang 1:27.3.4.6+dfsg-1ubuntu0.2 USN-8901-1
Ubuntu 25.10 erlang No fix yet —
Ubuntu 24.04 LTS erlang 1:25.3.2.8+dfsg-1ubuntu4.8 USN-8901-1
Ubuntu 22.04 LTS erlang 1:24.2.1+dfsg-1ubuntu0.8 USN-8901-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS erlang 1:22.2.7+dfsg-1ubuntu0.5+esm3 USN-8901-1
Ubuntu Pro 18.04 LTS erlang 1:20.2.2+dfsg-1ubuntu2+esm4 USN-8901-1
Ubuntu Pro 16.04 LTS erlang 1:18.3-dfsg-1ubuntu3.1+esm4 USN-8901-1
Ubuntu Pro 14.04 LTS erlang 1:16.b.3-dfsg-1ubuntu2.2+esm3 USN-8901-1
ReleasePackageFixed inAdvisory
Red Hat OpenStack 18 erlang +19 26.2.5.21-2.el9ost RHSA-2026:39809
Red Hat OpenStack 16 collectd-sensubility 0.2.1-1.1.el8ost RHSA-2026:54757
Red Hat OpenStack 16 erlang +20 23.3.4.18-2.el8ost RHSA-2026:54757
Red Hat OpenStack 16 etcd 3.3.23-22.el8ost RHSA-2026:54757
Red Hat OpenStack 16 python-oslo-messaging +1 10.2.4-2.20260710155333.82281a0.el8ost RHSA-2026:54757
Red Hat OpenStack 16 python-pyasn1 +2 0.4.6-4.el8ost RHSA-2026:54757
Red Hat OpenStack 16 python3-glance +1 1:19.0.5-2.20260512165254.eb6ad61.el8ost RHSA-2026:54757
Red Hat OpenStack 16 python3-keystone +1 1:16.0.3-2.20260616134936.9d699a7.el8ost RHSA-2026:54757
Red Hat OpenStack 16 python3-nova +11 1:20.6.2-2.20260317135026.8a24acd.el8ost RHSA-2026:54757
Red Hat Hardened Images 1 erlang27 +38 27.3.4.17-1.hum1 RHSA-2026:63160
ReleasePackageFixed inAdvisory
SLES 15 SP7 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLES 15 SP7 erlang26 26.2.1-150300.7.28.1 SUSE-SU-2026:3579-1
SLES 15 SP6 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLES 15 SP6 erlang26 26.2.1-150300.7.28.1 SUSE-SU-2026:3579-1
SLES 15 SP5 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLES 15 SP4 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 erlang 27.1.3-160000.5.1 SUSE-SU-2026:22082-1
SLES for SAP 15 SP6 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLES for SAP 15 SP6 erlang26 26.2.1-150300.7.28.1 SUSE-SU-2026:3579-1
SLES for SAP 15 SP5 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLES for SAP 15 SP4 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLES 16.0 erlang 27.1.3-160000.5.1 SUSE-SU-2026:22082-1
SLE HPC 15 SP5 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
SLE HPC 15 SP4 erlang 23.3.4.19-150300.3.39.1 SUSE-SU-2026:3645-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed erlang 28.5.0.4-1.1 openSUSE-SU-2026:11559-1
openSUSE Tumbleweed erlang27 27.1.3-2.1 openSUSE-SU-2026:10947-1
openSUSE Leap 16.0 erlang 27.1.3-160000.5.1 openSUSE-SU-2026:20907-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 erlang 26.2.5.21-1 —

Advisories 11

References