PHP 8.5.6: Parche urgente que sella 17 vulnerabilidades y estabiliza el JIT en entornos de alto rendimiento

- 13 May 2026 10:58 PM
El equipo de desarrollo de PHP ha lanzado la versión 8.5.6, una actualización de seguridad prioritaria que corrige 17 vulnerabilidades documentadas (CVE), incluyendo riesgos críticos de ejecución remota de código, inyección SQL y denegación de servicio. Disponible desde el 7 de mayo de 2026 para equipos de cómputo con Windows, Linux y macOS, este parche también estabiliza el compilador JIT, introduce soporte nativo para compresión Brotli y Zstd en cURL para Windows, y limpia decenas de fugas de memoria que afectaban a servidores de alto tráfico.
PHP ha publicado su versión 8.5.6, catalogada como una actualización de seguridad crítica por múltiples agencias de ciberseguridad.
Este lanzamiento, que culmina un ciclo de tres candidatos (RC1, RC2, RC3) , no solo mitiga fallos de corrupción de memoria que podrían permitir la ejecución remota de código, sino que también estabiliza el núcleo del motor tras la detección de regresiones en su compilador JIT y limpia decenas de fugas de memoria silenciosas.
17 vulnerabilidades críticas corregidas
Esta versión soluciona 17 fallos de seguridad que afectaban a componentes fundamentales del lenguaje, reportados en su mayoría durante las fases de prueba de los Release Candidates . La tabla resume los más críticos:
| CVE | Componente | Riesgo | Descripción Resumida |
|---|---|---|---|
| CVE-2026-6722 | SOAP | Crítico (RCE) | Use-After-Free que permite ejecución remota de código mediante solicitudes SOAP maliciosas con Apache Map. |
| CVE-2026-7261 | SOAP | Alto | Use-After-Free tras fallo de análisis en cabeceras con SOAP_PERSISTENCE_SESSION. |
| CVE-2026-7262 | SOAP | Alto | Comprobación de puntero nulo rota en el mapa de Apache que podía derivar en comportamiento indefinido. |
| CVE-2025-14179 | PDO Firebird | Crítico (SQLi) | Inyección SQL mediante bytes NUL en cadenas entrecomilladas al utilizar PDO::quote(). |
| CVE-2026-6735 | PHP-FPM | Alto | XSS en la página de estado que permite ejecutar JavaScript en el navegador del administrador. |
| CVE-2026-7259 | MBString | Alto | Desreferenciación de puntero nulo en mb_ereg_search_init() que provoca caída del proceso PHP. |
| CVE-2026-6104 | MBString | Medio | Acceso fuera de límites (out-of-bounds) en mbfl_name2encoding_ex() que podía exponer información de memoria. |
| CVE-2026-7568 | Standard | Medio | Desbordamiento de entero con signo en desplazamiento de arreglo de caracteres. |
| CVE-2026-7263 | DOM | Medio | Emisión duplicada de declaraciones xmlns tras setAttributeNS() en DomXMLDocument::C14N(). |
| CVE-2026-29078/079 | Lexbor | Alto | Múltiples vulnerabilidades en la biblioteca de análisis HTML/XML, actualizada a la versión 2.7.0. |
La tormenta perfecta: RCE en SOAP y SQLi silenciosa
La vulnerabilidad más grave (CVE-2026-6722) reside en el manejo de memoria de la extensión SOAP, que almacena punteros a objetos PHP en un mapa global sin incrementar contadores de referencia.
Al procesar un nodo con claves duplicadas, el objeto original se libera mientras su puntero permanece en el mapa, permitiendo a un atacante controlar el cuerpo de la solicitud para lograr ejecución remota de código.
Los servidores que exponen servicios SOAP al público deben priorizar esta actualización.
Paralelamente, el fallo en el driver PDO Firebird (CVE-2025-14179) representa un riesgo para quienes utilizan esta base de datos.
El sistema copia cadenas mediante strncat() y se detiene al encontrar un byte NUL, eliminando la comilla de cierre y permitiendo inyección SQL cuando valores controlados por el atacante son procesados mediante PDO::quote().
Estabilización del motor JIT y Opcache
Esta versión, que originalmente comenzó con un RC1 el 21 de abril , pone especial énfasis en la estabilidad del "cerebro" de PHP.
Se han solucionado múltiples errores en la recolección de basura y en la compilación JIT del Opcache:
- Regresión en optimización de ramas (GH-21460): Problema en la optimización condicional que podía provocar que scripts en caché se ejecutaran de forma incorrecta.
- Aserción fallida en JIT (GH-21158): Fallo en
zend_jit_use_regdurante la asignación de registros en el compilador JIT. - Corrección de JMPNZ smart branch (GH-21593): Error en la lógica de salto condicional que afectaba a bucles complejos.
- RC handling incorrecto en ZEND_EXT_STMT (GH-21504): Gestión de contadores de referencia que provocaba fugas de memoria.
El trabajo de estabilización se extendió a lo largo de tres candidatos de lanzamiento, con el RC2 y RC3 surgiendo de la necesidad de parchear una vulnerabilidad en la biblioteca uriparser (CVE-2026-42371) y corregir una regresión en la compilación de la extensión DOM en Windows.
Windows cierra la brecha: Compresión nativa de alto rendimiento
Una de las mejoras más esperadas llega para los desarrolladores que utilizan entornos Windows.
Con PHP 8.5.6, la extensión cURL ahora soporta de forma nativa los algoritmos de compresión Brotli y Zstd.
Anteriormente, los desarrolladores en Windows tenían que implementar soluciones manuales o parchear bibliotecas para lograr estas compresiones modernas, que reducen significativamente el ancho de banda al llamar a APIs modernas o descargar activos pesados.
Este cambio equipara la funcionalidad de Windows con la de macOS y Linux sin necesidad de reescribir el stack de red.
Corrección de decenas de fugas de memoria
Para entornos de alto tráfico, las fugas de memoria silenciosas son el enemigo invisible de la estabilidad. Esta versión incluye una limpieza profunda:
- Phar: Múltiples fugas corregidas en
offsetGet(),phar_add_file(),phar_verify_signature()y manejo dewebPhar()conSCRIPT_NAMEausente. - OpenSSL: Regresión de fuga en
openssl_pbkdf2(). - Session: Fuga cuando el callback de GC devuelve un valor referenciado.
- DOM: Múltiples fugas y uso después de liberación en
dom_objects_free_storage. - SPL: Errores de concurrencia y UAF en
SplObjectStoragedurante iteración y eliminación masiva. - Streams: Segfault en
file_get_contents()con URL HTTPS y proxy configurado.
Correcciones adicionales por extensión
| Extensión | Correcciones incluidas |
|---|---|
| Core | Aserción GC con fibras/generadores/destructores (GH-19983); manejo de propiedades en proxies lazy; conflictos de constantes en traits con enums (GH-21760) . |
| CLI | Opción --rf ya no activa advertencias de obsolescencia al inspeccionar métodos. |
| OpenSSL | Múltiples fugas de memoria y caídas en casos extremos. |
| PDO_PGSQL | Corrección en ATTR_PREFETCH=0 con resultados vacíos. |
| Random | Prevención de estado cero en Xoshiro256StarStar::__unserialize(). |
| Iconv | Fuga de memoria en iconv durante bailout. |
| Standard | Correcciones en getimagesize() para imágenes AVIF (GH-20627); aserciones en buffers de salida. |
Ámbito de la actualización y versiones afectadas
El parche afecta a un amplio espectro de versiones del lenguaje. Según los avisos oficiales, las siguientes versiones deben ser actualizadas:
| Versión | Versión Parcheada | Estado de Soporte |
|---|---|---|
| 8.2.x | 8.2.31 | Soporte de seguridad activo hasta diciembre 2026 |
| 8.3.x | 8.3.31 | Soporte activo |
| 8.4.x | 8.4.21 | Soporte activo |
| 8.5.x | 8.5.6 | Soporte activo |
Recomendaciones para administradores
La actualización ya está disponible en los canales oficiales:
- Distribuciones Linux: A través de gestores de paquetes (
apt,yum,dnf). - Windows: Binarios oficiales en php.net, con soporte mejorado para compresión en cURL.
- Compilación manual: Desde el código fuente, considerando la migración a la biblioteca Lexbor 2.7.0.
Dado que esta actualización incluye cambios críticos en el manejador de memoria de mbstring (CVE-2026-7259, CVE-2026-6104) y en la extensión SOAP, los administradores de servidores que expongan servicios SOAP o ejecuten aplicaciones con procesamiento intensivo de strings multibyte deben priorizar esta actualización.