FrankenPHP 1.13.2 se publicó el 21 de octubre de 2026. Sus imágenes Docker incorporan PHP 8.2.35, 8.3.36, 8.4.27 y 8.5.12. Los binarios estáticos utilizan PHP 8.5.12. Estas versiones corrigen PHP2Shell, identificado como CVE-2026-109618 y CVE-2026-109619. Las dos vulnerabilidades críticas permiten ejecutar código de forma remota sin autenticación. Las notas de la versión señalan que no existe una mitigación completa aparte de actualizar.

La actualización corrige otras cuatro vulnerabilidades de FrankenPHP. Una falla de alta gravedad en la extracción de aplicaciones integradas, registrada como GHSA-6q3j-62j9-f9hh, permitía que un usuario local preparara un directorio predecible dentro del área temporal compartida. El servicio podía terminar ejecutando el código PHP colocado allí. FrankenPHP ahora extrae las aplicaciones de forma atómica en un directorio por usuario. Solo reutiliza un directorio existente si pertenece al usuario actual.

Las solicitudes que esperan un hilo de PHP se descartan cuando el cliente se desconecta. Antes, un cliente no autenticado podía mantener ocupado el grupo de hilos al poner solicitudes en cola y cerrar la conexión. Esta vulnerabilidad corresponde a GHSA-fq24-r53r-xcx3.

Los arrays de PHP que se referencian a sí mismos ahora se rechazan al convertir valores a Go. Antes, uno de estos arrays podía provocar un desbordamiento de pila y tumbar el proceso si se pasaba a `frankenphp_log()`, lo devolvía un callback de worker o llegaba mediante la API de extensiones. El identificador es GHSA-ccgp-ch9h-533f. En modo worker, `error_get_last()` y `libxml_get_errors()` se limpian al terminar cada solicitud. Esto evita que fragmentos de la entrada de un cliente anterior o rutas del servidor lleguen a la siguiente solicitud. La vulnerabilidad está registrada como GHSA-4gfw-9v29-gp9h.

`frankenphp_log()` y las constantes `FRANKENPHP_LOG_LEVEL_*` ya están disponibles en `php-cli`. Los mensajes usan el formato del servidor y se escriben en stderr. La ejecución por CLI no carga el Caddyfile, por lo que sus directivas de registro no se aplican. La función de extensión `frankenphp_thread_index()` vuelve a exportarse para extensiones C como `frankenstate` y `frankenasync`.

Las compilaciones estáticas utilizan ahora static-php-cli v3. En macOS solo se publican binarios para Apple Silicon. Por eso ya no existe el recurso `frankenphp-mac-x86_64`. Los usuarios de Mac Intel deben compilar desde el código fuente con `build-static.sh`. El binario `-gnu` requiere ahora glibc 2.28 o posterior, en lugar de 2.17.

Las imágenes para construir binarios estáticos reciben ahora `PHP_EXTENSIONS`, `PHP_EXTENSION_LIBS`, `XCADDY_ARGS` y las demás opciones como variables de entorno para `docker run`. Ya no se pasan como argumentos de una compilación Docker. El binario se escribe en el directorio montado `/output`, y los valores predeterminados están en `craft.yml`. La documentación de compilaciones estáticas refleja este cambio.

Cuando se configura `hot_reload`, `opcache.revalidate_freq` pasa a tener por defecto el valor 0. Así se evita servir una página antigua después de un cambio. Los valores definidos en `php.ini`, `PHP_INI_SCAN_DIR` o mediante la directiva `php_ini` siguen teniendo prioridad. Caddy convierte ahora los límites de hilos y solicitudes en enteros. En `linux/386`, `linux/arm/v6` y `linux/arm/v7`, los valores fuera de rango generan un error en vez de convertirse en números negativos. Por tanto, `max_threads 4294967295` ya no significa usar el ajuste automático.

El encabezado `types.h` de las compilaciones estáticas ahora se llama `frankenphp_types.h`. Un encabezado de libwebp con el mismo nombre podía romper la compilación. La documentación explica cómo publicar actualizaciones de Mercure desde `php-cli` mediante el endpoint POST del hub. También aclara por qué detectar `mercure_publish()` durante el calentamiento de la caché desactiva esa función en el servidor web.

La versión incluye una corrección de la traducción rusa. @chubakur hizo su primera contribución en #2712, y @zaccesss en #2726. Las primeras contribuciones de @nickchomey y @sergehardy aparecen en #2717 y #1926, respectivamente.