CVE-2026-91769GHSA-vvx9-73fr-5jjx
PHP: TLS Hostname Verification Falls Back to CN After SAN Mismatch
CVSS
4.3MediumExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.14%Chance of exploitation activity in the next 30 days, higher than 2% of CVEs. Scored 23 Oct 2026FIRST EPSS
What fixes it
- 8.2.34PHPCVE List
- 8.3.35PHPCVE List
- 8.4.26PHPCVE List
- 8.5.11PHPCVE List
- 8.2.34ext-openssl, phpGitHub
- 8.3.35ext-openssl, phpGitHub
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
PHP's OpenSSL stream peer verification checks the certificate's subjectAltName entries first and, whenever no entry matches, falls back to the Common Name. RFC 6125 requires the CN to be ignored once the certificate presents any service identity, so a certificate carrying a non-matching DNS SAN was still accepted when its CN matched the requested peer_name. A certificate trusted by the client for one name can therefore be used to impersonate another.
Text from CVE List
Affected versions 8
- PHPaffected: 8.2.* before 8.2.34CVE List
- PHPaffected: 8.3.* before 8.3.35CVE List
- PHPaffected: 8.4.* before 8.4.26CVE List
- PHPaffected: 8.5.* before 8.5.11CVE List
- ext-openssl, php<8.2.34GitHub
- ext-openssl, php<8.3.35GitHub
- ext-openssl, php<8.4.26GitHub
- ext-openssl, php<8.5.11GitHub