---
id: CVE-2026-91767
title: >-
  php_openssl_matches_wildcard_name() in ext/openssl/xp_ssl.c underflows the
  length argument passed to memchr() when a TLS server certificate presents a
  wildcard name whose literal characters are together longer than the hostname
  being ver…
summary: >-
  php_openssl_matches_wildcard_name() in ext/openssl/xp_ssl.c underflows the
  length argument passed to memchr() when a TLS server certificate presents a
  wildcard name whose literal characters are together longer than the hostname
  being ver…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-122
vendor: PHP Group
product: ext-openssl
affected:
  - ext-openssl >= 8.2.* < 8.2.34
  - ext-openssl >= 8.3.* < 8.3.35
  - ext-openssl >= 8.4.* < 8.4.26
  - ext-openssl >= 8.5.* < 8.5.11
published: '2026-09-25'
updated: '2026-09-25'
sourceUpdated: '2026-09-25T21:17:24.793'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-91767'
references:
  - url: 'https://github.com/php/php-src/security/advisories/GHSA-xr7j-rvgx-xq5p'
    label: security@php.net
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-25T21:19:40.146Z'
---

## Overview

php_openssl_matches_wildcard_name() in ext/openssl/xp_ssl.c underflows the length argument passed to memchr() when a TLS server certificate presents a wildcard name whose literal characters are together longer than the hostname being verified. A malicious server presenting such a certificate makes the PHP client read up to SIZE_MAX bytes past the end of a heap allocation. The path is reachable from any default client stream, because verify_peer_name is enabled by default.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
