CVE-2026-91769: 
PHP 취약성 분석 및 완화

개요

CVE-2026-91769 is a TLS hostname verification bypass vulnerability in PHP's OpenSSL extension where certificate validation incorrectly falls back to the Common Name (CN) after a Subject Alternative Name (SAN) mismatch. This violates RFC 6125, which requires CN to be ignored once a certificate presents any service identity via SAN. Affected versions include PHP < 8.2.34, < 8.3.35, < 8.4.26, and < 8.5.11. It was published on September 24, 2026, and carries a CVSS v3.1 score of 4.3 (Moderate) (GitHub Advisory).

기술적 세부 사항

The root cause lies in php_openssl_apply_peer_verification_policy() within ext/openssl/xp_ssl.c, which checks the certificate's SAN list and then unconditionally falls back to the CN when no SAN entry matches — regardless of whether any SAN was present. This violates RFC 6125, which mandates that CN verification must be skipped if the certificate contains any service identity (DNS SAN, URI SAN, or SRV-ID otherName). The fix modifies php_openssl_matches_san_list() to report whether a service identity was present; if one was present but none matched, verification now fails with "Peer certificate subjectAltName did not match expected name" instead of consulting the CN. Certificates with no service identity at all retain the CN fallback for backward compatibility. This is classified as an improper certificate validation issue (CWE-295) and affects all client streams using the default verify_peer_name, including file_get_contents(), fopen(), and stream_socket_client() over https:// and tls:// (GitHub Advisory).

영향

An attacker who can obtain a certificate from a trusted CA (including private or internal CAs) with the target hostname in the CN and an unrelated hostname in the SAN can impersonate the target host to PHP clients. This enables man-in-the-middle attacks against PHP applications making outbound TLS connections, potentially exposing sensitive data transmitted over those connections. The confidentiality impact is limited (low), with no direct integrity or availability impact, but the risk is elevated in environments using private PKIs or internal CAs where certificate issuance is less strictly controlled (GitHub Advisory).

악용 가능성

No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the disclosure date. The advisory includes a detailed PoC certificate configuration demonstrating the bypass, making reproduction straightforward for researchers. The vulnerability requires an adjacent network position (CVSS AV:A) and the ability to obtain or present a certificate with a mismatched SAN and a matching CN, limiting opportunistic exploitation. The CVE status was "Reserved" at the time of Feedly ingestion, and no CISA KEV listing or EPSS score data is currently available (GitHub Advisory, Feedly).

착취 단계

  1. Obtain a certificate: Acquire a TLS certificate from a CA trusted by the target PHP client, with CN=victim.example.com and SAN=DNS:attacker.example.com (i.e., the attacker controls the SAN domain but targets the CN domain).
  2. Set up a rogue TLS server: Configure a TLS server (e.g., using OpenSSL's s_server) to present this crafted certificate on a port reachable by the target PHP application.
  3. Intercept or redirect traffic: Use ARP spoofing, DNS poisoning, or network-level redirection to route the PHP client's outbound HTTPS/TLS connection to victim.example.com toward the rogue server.
  4. Trigger PHP client connection: Cause the PHP application to make an outbound TLS request (e.g., via file_get_contents('https://victim.example.com/...'), fopen(), or stream_socket_client()) with default verify_peer_name=true.
  5. Bypass verification: PHP's vulnerable php_openssl_apply_peer_verification_policy() finds no matching SAN entry but falls back to CN, which matches victim.example.com, and accepts the certificate — completing the impersonation.
  6. Intercept data: The attacker's server can now read and optionally modify the plaintext of the TLS session, capturing credentials, API tokens, or other sensitive data (GitHub Advisory).

완화 및 해결 방법

Upgrade PHP to one of the patched versions: 8.2.34, 8.3.35, 8.4.26, or 8.5.11, all released on September 24, 2026 (GitHub Advisory, PHP NEWS). As a temporary workaround, applications can explicitly set peer_name and ensure certificates used in internal PKIs do not carry DNS SANs for unrelated domains. Auditing internal CA issuance policies to prevent certificates with mismatched CN/SAN combinations is also recommended. There is no configuration-only mitigation within PHP itself for unpatched versions.

커뮤니티 반응

The vulnerability was reported by security researchers christos-cantina-security and DavidKorczynski and fixed by Jakub Zelenka of the PHP core team (GitHub Advisory). Security community coverage noted the issue alongside several other PHP vulnerabilities patched in the same release cycle, with outlets such as SecurityOnline and Remi's blog highlighting the batch of fixes (SecurityOnline, Remi's Blog). Nessus detection plugins were published shortly after disclosure, indicating prompt uptake by vulnerability management vendors.

추가 자료

리눅스 배포판 수정 현황

주요 리눅스 배포판과 그 릴리스 전반에 걸친 가용성을 수정하세요.

Debian

영향을 받은 사람들

bookworm

php8.2

영향을 받은 사람들

sid

php8.4

영향을 받은 사람들

trixie

php8.4: 8.4.26-1~deb13u1

수정됨

Ubuntu

알 수 없음

bionic (esm-infra)

php7.2

알 수 없음

devel

php8.5

알 수 없음

focal (esm-infra)

php7.4

알 수 없음

jammy

php8.1

알 수 없음

noble

php8.3

알 수 없음

resolute

php8.5

알 수 없음

trusty (esm-infra-legacy)

php5

알 수 없음

xenial (esm-infra-legacy)

php7.0

알 수 없음

Alpine

수정됨

edge

php83: 8.3.35-r0, 8.4.26-r0, 8.5.11-r0

수정됨

근원: 이 보고서는 AI를 사용하여 생성되었습니다.

관련 PHP 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-91768MEDIUM6.5
  • PHP logoPHP
  • php:7.4::php-common
아니요예Sep 25, 2026
CVE-2026-91767MEDIUM6.5
  • PHP logoPHP
  • php-opcache
아니요예Sep 25, 2026
CVE-2026-92842MEDIUM5.9
  • PHP logoPHP
  • php:8.2::php-process
아니요예Sep 25, 2026
CVE-2026-91766MEDIUM5.9
  • PHP logoPHP
  • php8.4-fpm
아니요예Sep 25, 2026
CVE-2026-91769MEDIUM4.3
  • PHP logoPHP
  • php-fpm
아니요예Sep 25, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자