Una falla en la extensión OpenSSL de PHP hace que, al conectarse por TLS, acepte certificados cuyo Common Name coincide con el servidor esperado aunque sus subjectAltName no coincidan, lo que permite suplantar servicios. Afecta a las aplicaciones PHP que se conectan a otros servicios por https:// o tls://, sobre todo en entornos con CA interna. Actualiza PHP a 8.2.34, 8.3.35, 8.4.26 u 8.5.11 según tu rama.
Qué está pasando
Cuando una aplicación PHP abre una conexión cifrada hacia otro servidor (por ejemplo, para consumir una API), PHP revisa que el certificado presentado corresponda al nombre del servidor esperado. Para eso mira primero los nombres alternativos del certificado (subjectAltName) y, si ninguno coincide, recurre al Common Name (CN). El estándar RFC 6125 indica que el CN debe ignorarse cuando el certificado ya trae nombres alternativos, pero PHP lo seguía consultando.
En la práctica, un certificado emitido con CN=victim.test y SAN=DNS:attacker.test era aceptado al conectarse a victim.test. Así, alguien que consiga un certificado de confianza con el nombre de la víctima en el CN puede hacerse pasar por ese servidor e interceptar o leer la comunicación. El aviso destaca que esto pesa especialmente en entornos con PKI privada o CA interna, donde es más fácil obtener certificados con un CN arbitrario.
La falla afecta a todas las conexiones cliente que usan la opción por defecto verify_peer_name, incluidas file_get_contents(), fopen() y stream_socket_client() sobre https:// y tls://. El atacante necesita estar en la red adyacente (CVSS 4.3, impacto limitado en confidencialidad). El aviso incluye una prueba de concepto pública.
La corrección hace que, si el certificado presenta algún nombre de servicio (DNS SAN, URI SAN o SRV-ID) y ninguno coincide, la verificación falle con el mensaje Peer certificate subjectAltName did not match expected name. Los certificados sin ningún nombre alternativo siguen usando el CN por compatibilidad.
Vulnerabilidades
| CVE | CVSS | Descripción |
|---|---|---|
| CVE-2026-91769 | 4.3 (CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) | La verificación de certificados de la extensión OpenSSL de PHP recurre al Common Name aunque los subjectAltName no coincidan, lo que permite usar un certificado de confianza para suplantar otro nombre de servidor. |
Productos afectados
| Producto | Versiones afectadas | Versión corregida |
|---|---|---|
| PHP (ext-openssl), rama 8.2 | Anteriores a 8.2.34 | 8.2.34 |
| PHP (ext-openssl), rama 8.3 | Anteriores a 8.3.35 | 8.3.35 |
| PHP (ext-openssl), rama 8.4 | Anteriores a 8.4.26 | 8.4.26 |
| PHP (ext-openssl), rama 8.5 | Anteriores a 8.5.11 | 8.5.11 |
Qué hacer ahora
- Verifica qué versión de PHP tienes instalada en cada servidor y contenedor (por ejemplo, con
php -v). - Actualiza PHP a la versión corregida de tu rama: 8.2.34, 8.3.35, 8.4.26 u 8.5.11.
- Después de actualizar, comprueba que las aplicaciones que se conectan a servicios por
https://otls://siguen funcionando, ya que los certificados con SAN que no coinciden ahora serán rechazados.
Te ayudamos a revisar sin costo si tus servidores o equipos usan una versión afectada por esta alerta, y qué conviene hacer primero.
Prioriza los servidores PHP que se conectan a servicios internos firmados por una CA propia (APIs internas, ERP, servicios de pago o integraciones entre sistemas), porque es ahí donde el aviso sitúa el mayor riesgo. No olvides las tareas programadas, los procesos en segundo plano y las imágenes de contenedores, que suelen quedar con versiones antiguas aunque el servidor web principal esté al día.
Tras la actualización, es posible que alguna integración empiece a fallar si usaba certificados mal emitidos, con el nombre correcto solo en el CN. Antes de desactivar la verificación como solución rápida, aprovecha para reemitir esos certificados con el nombre correcto en el subjectAltName; si usas paquetes de tu distribución Linux, confirma con el proveedor que incluyen la corrección.
Cómo te ayuda UpTech
Con Gestión de Parches, las actualizaciones de seguridad de sistemas operativos y aplicaciones se aplican de forma programada, sin depender de que alguien lea esta alerta a tiempo.
Conocer el servicio → Servicios Gestionados TICon el inventario automatizado de hardware y software sabes de inmediato qué equipos tienen la versión afectada.
Conocer el servicio →Referencias
- https://github.com/php/php-src/security/advisories/GHSA-vvx9-73fr-5jjx
- https://www.cve.org/CVERecord?id=CVE-2026-91769