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_reg durante 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 de webPhar() con SCRIPT_NAME ausente.
  • 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 SplObjectStorage durante 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.