Servicio de urgencia

Vulnerabilidad crítica en PHP: actualiza tu servidor

El 21 de octubre de 2026, el proyecto PHP publicó dos vulnerabilidades críticas que permiten ejecutar código en el servidor sin autenticación. Afectan a cualquier web o tienda en PHP. Cezetazeta revisa tu servidor, actualiza PHP y aplica medidas de mitigación si la actualización no puede hacerse en el momento.

Una web con las ventas desplomadas y una señal de alertaventas

Publicado el · Fuente: php.net

Qué ha pasado con PHP

Son dos fallos en el propio PHP, no en una aplicación concreta. Afectan a todas las formas habituales de servir PHP en la web: PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed.

Fuente: aviso de seguridad oficial de php.net

CVE-2026-109618 Ejecución remota de código por corrupción al quedarse sin memoria

Cuando PHP se queda sin memoria, puede interrumpirse con datos internos de la petición a medio preparar. Al limpiar la petición, esos datos inválidos se tratan como válidos.

GHSA-w8hw-w9fx-j79w

CVE-2026-109619 Ejecución remota de código por estado global obsoleto

Parte del estado interno de una petición puede sobrevivir después de liberarse su memoria. Una petición posterior en el mismo worker puede usarlo antes de que se reinicie.

GHSA-6wmf-4rv5-p3rp

Riesgo más alto Apache con mod_php

El equipo de PHP ha demostrado un ataque en el que una petición sin autenticar lo desencadena antes de que se ejecute el código de la aplicación.

Versiones de PHP que corrigen el fallo

Tu servidor necesita, como mínimo, la versión corregida de su rama. PHP 8.1 y anteriores no reciben actualizaciones del proyecto PHP.

  • PHP 8.58.5.12
  • PHP 8.48.4.27
  • PHP 8.38.3.36
  • PHP 8.28.2.35

¿Afecta a tu web o tienda?

Si se cumple alguna de estas situaciones, conviene revisar el servidor cuanto antes.

  • Tu web o tienda funciona con PHP: WordPress, WooCommerce, PrestaShop, Magento, Laravel, Symfony o código propio.
  • Tu versión de PHP es anterior a 8.5.12, 8.4.27, 8.3.36 u 8.2.35.
  • El servidor usa Apache con mod_php, el caso de mayor riesgo según el equipo de PHP.
  • Sigues con PHP 8.1 o anterior, que ya no recibe actualizaciones del proyecto PHP.
  • Instalas PHP desde rpms.remirepo.net, que no tenía la actualización el día del aviso.
  • Tu hosting no ha confirmado que haya actualizado PHP en tu servidor.

Cómo saber qué versión de PHP tienes

Comprueba la versión que sirve la web, no solo la de la línea de comandos: en un mismo servidor pueden convivir varias.

En el panel del hosting
Plesk, cPanel y la mayoría de paneles muestran la versión de PHP asignada a cada dominio.
En WordPress y WooCommerce
Herramientas › Salud del sitio › Información › Servidor.
En PrestaShop
Parámetros avanzados › Información, en el apartado de configuración del servidor.
En Magento
Por SSH, php -v con el mismo binario que usa la tienda, y la versión del pool de PHP-FPM configurado en el servidor web.
Por SSH
php -v muestra la versión de la línea de comandos. Para la web, revisa el pool de PHP-FPM o la configuración de Apache del sitio.

Actualización de PHP y revisión del servidor

Actualizar es la solución completa. Mientras tanto, se reduce la exposición.

Revisión de la versión y la configuración
Versión real de PHP en cada sitio y pool, tipo de ejecución (PHP-FPM, mod_php, LiteSpeed…) y origen de los paquetes.
Actualización de PHP
Paquetes de la distribución, del proveedor LTS o compilación desde el código fuente, con reinicio de todos los workers.
Mitigación si no se puede actualizar ya
Límites de memoria y de tamaño de petición, upload progress de sesión desactivado y límites en el servidor web o el proxy.
Cambio de rama con garantías
Si vienes de PHP 8.1 o anterior, revisión de compatibilidad de la web, plugins y módulos y prueba en staging antes de producción.
Búsqueda de indicios de intrusión
Revisión de logs, procesos y archivos modificados para descartar que la vulnerabilidad se haya aprovechado antes de parchear.
Coordinación con tu hosting
En hosting compartido o gestionado, comprobación de que el proveedor ha aplicado el parche y de que tu web lo usa.

Medidas de mitigación si no puedes actualizar todavía

Estas son las medidas temporales que recomienda el equipo de PHP. Reducen la exposición a vías de ataque concretas, pero no hacen segura la instalación.

Contra CVE-2026-109618

  • memory_limit=-1 fijado de forma que la aplicación no pueda cambiarlo, por ejemplo conphp_admin_value en el pool de FPM o en Apache.
  • post_max_size bajo: 8M si no hay subida de archivos, 32M si la hay, conupload_max_filesize por debajo.
  • Límites de tamaño, campos y cabeceras de la petición en el servidor web o el proxy.
  • Límite de memoria por contenedor o cgroup, no con RLIMIT_AS ni RLIMIT_DATA.

Contra CVE-2026-109619

  • session.upload_progress.enabled=0 en php.ini o en el pool, no con ini_set() ni.user.ini, y reinicio de todos los workers.
  • En PHP 8.5, fatal_error_backtraces=0 y reinicio de todos los workers.
  • Retirar ajustes inválidos u obsoletos que generen avisos al inicio de cada petición.
  • Corregir errores fatales y tiempos de ejecución agotados que un atacante pueda provocar.

Cómo se actúa

Primero se cierra la vía de ataque y después se comprueba que nada haya entrado antes.

  1. Revisión

    Versión, forma de ejecución y origen de PHP en cada sitio del servidor.

  2. Mitigación

    Medidas temporales si la actualización necesita preparación.

  3. Actualización

    PHP corregido, reinicio de todos los workers y comprobación de que la web funciona.

  4. Comprobación

    Revisión de logs y archivos en busca de indicios de intrusión previa.

Revisa tu servidor

Indica la dirección de la web, el tipo de hosting y, si la sabes, la versión de PHP. Para empezar inmediatamente, usa WhatsApp o el teléfono.

Por ejemplo: Magento 2.4.6, ERP con API REST, hosting con Plesk.

Respuesta por email con un primer análisis. Tus datos solo se usan para responderte.

Preguntas sobre la vulnerabilidad de PHP

¿Afecta a WordPress, WooCommerce, PrestaShop o Magento?

Sí, a todos los que funcionan sobre una versión de PHP sin corregir. El fallo está en el propio PHP, no en el CMS, así que actualizar WordPress, PrestaShop o Magento no lo soluciona: hay que actualizar PHP en el servidor. Lo mismo ocurre con Laravel, Symfony y cualquier aplicación en PHP.

¿Cómo sé qué versión de PHP usa mi web?

En el panel del hosting (Plesk, cPanel u otro) aparece la versión asignada a cada dominio. En WordPress también se ve en Herramientas › Salud del sitio › Información › Servidor. Ojo: la versión de la línea de comandos puede ser distinta de la que sirve la web.

¿Qué son CVE-2026-109618 y CVE-2026-109619?

Son los identificadores de las dos vulnerabilidades críticas de PHP publicadas el 21 de octubre de 2026. La primera aprovecha cómo PHP gestiona la falta de memoria y la segunda, un estado interno que sobrevive entre peticiones. Las dos pueden permitir ejecutar código en el servidor sin autenticación.

¿Mi hosting lo actualiza automáticamente?

En hosting compartido el proveedor suele actualizar los paquetes, pero conviene confirmarlo. En un VPS o un servidor dedicado, la actualización corresponde a quien administra el servidor.

¿Basta con aplicar las medidas de mitigación?

No. Según el propio equipo de PHP, las mitigaciones reducen la exposición a vías de ataque concretas, pero no hacen segura la instalación. La solución completa es actualizar.

Tengo PHP 7.4, 8.0 u 8.1. ¿Qué hago?

El proyecto PHP ya no publica versiones para esas ramas. Algunas distribuciones y proveedores LTS ofrecen parches propios, y el equipo de seguridad de PHP ha publicado parches mínimos para quien compila desde el código fuente. Lo recomendable es pasar a una versión con soporte, revisando antes la compatibilidad de la web.

¿Actualizar PHP puede romper mi web?

Dentro de la misma rama, por ejemplo de 8.3.30 a 8.3.36, el riesgo es bajo. Cambiar de rama, por ejemplo de 8.1 a 8.3, puede afectar a plugins, módulos o código antiguo, y conviene probarlo antes en una copia de la web.

¿Y si creo que ya han entrado en mi servidor?

Actualizar cierra la vía de entrada, pero no elimina lo que un atacante haya dejado dentro. En ese caso hace falta una limpieza y un análisis de cómo entraron, como se explica en la página de web hackeada.

WhatsApp