Aviso de seguridad de PHP · 21 de octubre de 2026

Fallo crítico en PHP: cómo saber si tu web está afectada y actualizarla sin romperla

PHP ha corregido dos fallos que permiten ejecutar código en el servidor sin contraseña (CVE-2026-109618 y CVE-2026-109619, gravedad 9,2 sobre 10). Afectan a las webs hechas con PHP —WordPress, WooCommerce, PrestaShop, Joomla— que no estén en una versión corregida. Aquí tienes qué ha pasado y qué hacer. Si prefieres que lo revisemos nosotros, te decimos si tu web lo está y la actualizamos.

Prefiero que me llaméis

Publicado el · actualizado el · por el equipo de QAmezIA

Resumen

El fallo de PHP de octubre, en 30 segundos

  • Qué: dos fallos en el propio PHP, no en WordPress ni en ningún plugin. Permiten ejecutar código en el servidor con una petición a la web, sin iniciar sesión.
  • Gravedad: crítica. CVSS v4.0 de 9,2 sobre 10 en los dos.
  • A quién: a cualquier PHP que sirva páginas web y no esté en 8.5.12, 8.4.27, 8.3.36 u 8.2.35 (o posterior), salvo que el proveedor haya aplicado el parche por su cuenta.
  • Qué hacer: mirar qué versión de PHP usa tu web y actualizarla. Los ajustes de configuración solo reducen el riesgo.
  • Ojo: PHP 8.1 y anteriores ya no reciben arreglos oficiales, y PHP 8.2 deja de tenerlos el 31 de diciembre de 2026.

Qué ha pasado

Dos fallos críticos en PHP, publicados el 21 de octubre de 2026

El 20 de octubre, el equipo de seguridad de PHP avisó de que al día siguiente publicaría una versión de seguridad para dos fallos críticos, los dos con una puntuación CVSS v4.0 de 9,2. El 21 de octubre salieron PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35, que los corrigen. Según el aviso oficial de PHP, ambos pueden permitir la ejecución remota de código sin autenticación.

CVE-2026-109618, «ejecución remota por corrupción en falta de memoria». Cuando PHP se queda sin memoria durante una petición, corta lo que estaba haciendo. Si eso ocurre mientras ciertos datos internos de la petición están a medio preparar, al cerrar la petición PHP puede tratarlos como si fueran válidos. El aviso técnico explica que un atacante puede provocar esa falta de memoria con peticiones de formulario manipuladas (las de tipo «multipart», las mismas que se usan para subir archivos), sin salirse de los límites normales de PHP, y que la ejecución de código está confirmada en Apache con mod_php y los límites por defecto.

CVE-2026-109619, «ejecución remota por estado global obsoleto». Algunos datos internos de una petición pueden sobrevivir después de que se libere la memoria que los respalda. Si la petición siguiente cae en el mismo proceso, puede usar esos datos antes de que se reinicien. Es lo que se conoce como «uso después de liberar» (use-after-free). El aviso técnico confirma dos caminos para provocarlo: las trazas de errores fatales en PHP 8.5 y el progreso de subida de archivos de las sesiones cuando se interrumpe por falta de memoria.

En la práctica, quien explote cualquiera de las dos vulnerabilidades puede ejecutar código con los permisos del usuario con el que corre la web. Eso suele bastar para leer la base de datos, modificar páginas, instalar puertas traseras o usar el servidor para enviar spam. No es un ataque trivial —la complejidad está calificada como alta—, pero un fallo así, con el parche ya público, es de los que se intentan explotar en masa en cuanto alguien publica cómo hacerlo.

Lo que no ha pasado

No es un fallo de WordPress, de WooCommerce ni de ningún plugin, y actualizar WordPress no lo arregla. Está en el intérprete de PHP que ejecuta tu web. Tampoco significa que tu web haya sido atacada: significa que, si está en una versión afectada, conviene actualizar cuanto antes.

A quién afecta

¿A qué webs afecta la vulnerabilidad de PHP?

PHP considera en riesgo a toda instalación de PHP que sirva peticiones web. Por cómo ejecuta PHP el servidor, el riesgo no es igual en todos los casos:

Cómo se ejecuta PHPQué dicen los avisos
Apache con mod_phpRiesgo más alto. Ataque demostrado: una petición sin autenticar lo dispara antes de que se ejecute tu propia web.
PHP-FPM (Nginx o Apache)Incluido en el aviso. Para el primer fallo, «probablemente susceptible», aún sin confirmar.
LiteSpeed (LSAPI)Incluido en el aviso; probablemente susceptible según el análisis del código.
FrankenPHPIncluido en el aviso; probablemente susceptible según el análisis del código.
php-cgiIncluido en el aviso.

Traducido a tipos de web: te afecta si tu web funciona con PHP en un hosting o servidor que gestionas tú o tu proveedor. Eso incluye WordPress y WooCommerce, PrestaShop, Joomla, Drupal, Magento, Moodle y las aplicaciones hechas a medida en PHP (Laravel, Symfony o PHP sin framework).

No tienes que hacer nada si tu web está en una plataforma cerrada como Shopify, Wix o Squarespace: ahí no gestionas el servidor ni la versión de PHP. Tampoco afecta a webs estáticas o hechas con otras tecnologías sin PHP en el servidor.

Primer paso

Cómo saber qué versión de PHP usa tu web

Es lo primero que hay que mirar, y se puede hacer en un par de minutos por cualquiera de estas vías:

  • En WordPress: Herramientas → Salud del sitio → Información → apartado «Servidor». Aparece la «Versión de PHP».
  • En el panel del hosting: en cPanel suele estar en «Seleccionar versión de PHP» o «MultiPHP Manager»; en Plesk, en la configuración de PHP de cada dominio. Ahí ves la versión y, a veces, puedes cambiarla.
  • Preguntando al proveedor: pide por escrito qué versión exacta de PHP sirve tu web y si ya incluye el parche de CVE-2026-109618 y CVE-2026-109619.
  • En un servidor propio: con una página temporal que llame a phpinfo() (bórrala en cuanto la mires) o revisando el paquete instalado con el gestor de paquetes del sistema.

Cuidado con php -v. Ese comando enseña la versión de PHP de la línea de comandos, que no siempre es la que sirve la web: en un mismo servidor puede haber varias versiones instaladas a la vez. Lo que cuenta es la versión del PHP que atiende las peticiones de tu dominio.

Y otra trampa: en servidores con Debian, Ubuntu o Red Hat, la distribución suele aplicar el parche sin cambiar el número de versión de PHP. Una «8.2.x» de distribución puede estar corregida aunque el número sea menor que 8.2.35. En ese caso hay que mirar el boletín de seguridad de la distribución y la versión exacta del paquete, no solo el número de PHP.

Versiones corregidas

Qué hacer según tu versión de PHP

Tu ramaVersión corregidaQué hacer
PHP 8.58.5.12Actualizar a la 8.5.12 o posterior.
PHP 8.48.4.27Actualizar a la 8.4.27 o posterior.
PHP 8.38.3.36Actualizar a la 8.3.36 o posterior.
PHP 8.28.2.35Actualizar a la 8.2.35, y planificar el salto: deja de tener soporte el 31-12-2026.
PHP 8.1, 8.0, 7.4 o anteriorSin versión oficialParche de tu proveedor (pide el boletín) o subir a una rama con soporte.

Si estás en una rama con soporte (8.2 a 8.5), basta con subir a la última versión de tu misma rama: es un cambio pequeño y rara vez rompe nada. Si estás en PHP 8.2, aprovecha para planificar el salto a 8.3 o superior, porque el 31 de diciembre de 2026 deja de recibir arreglos de seguridad.

Si estás en PHP 8.1 o anterior, el proyecto PHP ya no publica versiones para tu rama. Por la gravedad del caso, su equipo de seguridad ha dejado parches mínimos para 7.4, 8.0 y 8.1, pero son para quien compila PHP desde el código fuente. En un hosting normal, las salidas reales son dos: que tu proveedor tenga un parche propio (y te lo confirme por escrito) o subir a una rama con soporte. Esto segundo es lo que más se rompe si se hace sin probar.

Fuente: aviso oficial de PHP y avisos de GitHub GHSA-w8hw-w9fx-j79w y GHSA-6wmf-4rv5-p3rp.

Quién tiene que actualizar

Hosting compartido, VPS o servidor propio: de quién depende

Hosting compartido (el habitual en webs de empresas pequeñas): el proveedor gestiona PHP. Lo normal es que actualice o aplique el parche por su cuenta, pero muchas webs están fijadas en una versión antigua desde el panel porque «así funcionaba». Si tu web está en 7.4 u 8.0 por esa razón, el proveedor no puede subirla sin arriesgarse a romperla, y puede que no lo haga.

VPS o servidor dedicado: aquí actualizas tú (o quien te lleve el servidor). Hay que instalar el paquete corregido de la distribución, o la versión nueva si compilas PHP, y reiniciar los procesos de PHP (PHP-FPM, Apache o el que uses) para que la versión nueva entre en uso. Instalar sin reiniciar deja la versión vieja corriendo.

Hosting gestionado de WordPress o tienda: suelen encargarse ellos. Aun así, conviene pedir confirmación por escrito de la versión y la fecha del parche.

Un aviso concreto de PHP: si tu servidor instala PHP desde el repositorio de voluntarios rpms.remirepo.net, el día del aviso todavía no tenía las versiones nuevas. PHP recomienda pasar a los paquetes de la distribución o compilar desde el código fuente para poder actualizar al momento.

Para técnicos

Medidas temporales si no puedes actualizar hoy

PHP propone ajustes que reducen la exposición a los caminos de ataque conocidos. No dejan la instalación segura: el aviso del segundo fallo dice literalmente que no hay una mitigación completa por configuración. Úsalos solo como puente hasta actualizar.

  • Desactivar el progreso de subida de las sesiones: session.upload_progress.enabled=0 en php.ini, en el pool de FPM o en la configuración del servidor, y reiniciar todos los procesos. No vale hacerlo con ini_set() ni con .user.ini.
  • En PHP 8.5: fatal_error_backtraces=0 y reiniciar todos los procesos.
  • Bajar post_max_size: 8M si la web no recibe archivos, 32M si los recibe, con upload_max_filesize por debajo.
  • Poner memory_limit=-1 de forma que la aplicación no pueda cambiarlo (por ejemplo, con php_admin_value en el pool de FPM o en Apache), y apoyarse en un límite del contenedor o del cgroup que cierre solo el proceso afectado. PHP desaconseja usar RLIMIT_AS o RLIMIT_DATA, porque pueden provocar justo el fallo.
  • Limitar en el servidor web o el proxy el tamaño de las peticiones, el número de campos y de partes de los envíos de formularios y el número de cabeceras, también en peticiones sin Content-Length.
  • Corregir los errores fatales y los tiempos agotados que un visitante pueda provocar, y quitar ajustes de configuración inválidos u obsoletos que generen avisos en cada petición. Ocultar los avisos con display_errors o @ no sirve.

Si no sabes qué es un pool de FPM ni dónde está tu php.ini, no toques nada de esto: en un hosting compartido no tendrás acceso a la mayoría de esos ajustes y lo correcto es pedir al proveedor que actualice. Las instrucciones completas están en el aviso oficial.

Paso a paso

Cómo actualizar PHP sin romper la web

Subir de versión dentro de la misma rama es sencillo. Cambiar de rama es donde se rompen las webs: un plugin que usa funciones que ya no existen, un tema antiguo o un módulo de pago que no aguanta la versión nueva. Este es el orden que seguimos:

  1. Copia de seguridad completa de archivos y base de datos, guardada fuera del servidor y comprobada.
  2. Inventario: versión de WordPress, PrestaShop o lo que uses, tema, plugins o módulos y sus versiones.
  3. Compatibilidad: comprobar que cada pieza soporta la versión de PHP de destino. Lo que no la soporte, se actualiza o se sustituye antes.
  4. Prueba en una copia de la web (staging) con la versión nueva, si el hosting lo permite.
  5. Cambio de versión en un momento de poco tráfico, y reinicio de los procesos de PHP si el servidor es tuyo.
  6. Revisión funcional: páginas principales, formularios de contacto, carrito y pagos, área de clientes, envío de correos y tareas programadas.
  7. Registro de errores: revisar el log de PHP las horas siguientes; los avisos de funciones obsoletas avisan de lo que se romperá en el siguiente salto.
  8. Plan de vuelta atrás: saber cómo volver a la versión anterior en minutos si algo crítico falla, y tener un plan para no quedarse en ella.

Lo que vemos a menudo

Errores habituales con este fallo de PHP

  • Pensar que actualizar WordPress lo arregla. El fallo está en PHP, no en WordPress. Puedes tener WordPress al día y PHP vulnerable.
  • Fiarse de php -v. Puede enseñar una versión distinta de la que sirve la web.
  • Dar por hecho que el hosting ya lo ha hecho. Muchas veces sí, pero no si la web está fijada en una versión antigua. Hay que comprobarlo.
  • Cambiar la configuración y darlo por resuelto. Las medidas temporales solo reducen el riesgo.
  • Instalar sin reiniciar. En un servidor propio, la versión nueva no entra en uso hasta reiniciar los procesos de PHP.
  • Saltar de PHP 7.4 a 8.3 sin probar. Es la forma más rápida de tumbar una tienda online un viernes por la tarde.

Si sospechas algo

Cómo saber si tu web ha sido atacada

Actualizar PHP cierra la puerta, pero no echa a quien ya hubiera entrado. Si tu web ha estado en una versión vulnerable, conviene mirar si hay señales de que alguien la ha manipulado. Estas son señales generales de una web comprometida, por este fallo o por cualquier otro; ninguna prueba por sí sola que te hayan atacado, pero todas merecen una revisión:

  • Archivos .php nuevos o modificados que nadie ha subido, sobre todo en carpetas de imágenes o de subidas (en WordPress, wp-content/uploads).
  • Usuarios administradores que no reconoces, o cambios de contraseña que no has pedido.
  • Redirecciones a otras webs, sobre todo desde el móvil o cuando se llega desde Google.
  • Avisos de Google Search Console sobre «sitio hackeado» o contenido que no es tuyo indexado con tu dominio.
  • El proveedor te avisa de un pico de envío de correos, de consumo de CPU o de procesos extraños.
  • Tareas programadas (cron) que no reconoces.

Si ves algo de esto, no borres nada a lo loco: los registros del servidor sirven para saber por dónde entraron y qué tocaron. El orden razonable es aislar la web o ponerla en mantenimiento, guardar una copia de cómo está (con sus registros), restaurar una copia de seguridad limpia de antes del problema, actualizar PHP y el resto del software y, después, cambiar todas las contraseñas: las del panel del hosting, la base de datos, el FTP o SFTP y los usuarios de la web. Cambiarlas antes de limpiar no sirve, porque quien esté dentro puede volver a leerlas.

Si en tu web hay datos personales de clientes y ha habido acceso indebido, puede que tengas que notificarlo a la Agencia Española de Protección de Datos en un plazo de 72 horas desde que lo sepas. Consulta con quien te lleve la protección de datos.

Si quieres que lo hagamos nosotros

Primero el diagnóstico. Después, solo lo que haga falta.

Diagnóstico

49 € + IVA

  • Versión exacta de PHP y quién la mantiene
  • Si tu hosting ya ha aplicado el parche
  • Si tu web, tema y plugins aguantan la versión corregida
  • Informe con lo que hay que hacer, o con que no hace falta nada

Actualización de PHP

desde 149 € + IVA

  • Copia de seguridad antes de tocar nada
  • Paso a una versión corregida y con soporte
  • Comprobamos que formularios, pagos y plugins siguen funcionando
  • Verificación posterior por escrito

Precio cerrado tras el diagnóstico.

Casos complejos

desde 399 € + IVA

  • Servidor propio o VPS
  • Versiones muy antiguas (7.x, 8.0, 8.1)
  • Webs a medida o plugins que no aguantan el cambio

Presupuesto cerrado tras el diagnóstico.

01

Acordamos el alcance

Antes de tocar nada dejamos por escrito qué se revisa, con qué acceso y en qué momento.

02

Comprobamos versión y parches

Versión real de PHP, quién la mantiene, si ya tiene el parche y si tu web aguanta la corregida.

03

Actualizamos y verificamos

Si hace falta, actualizamos con copia de seguridad y comprobamos que todo sigue funcionando.

Preguntas frecuentes

Preguntas frecuentes sobre la vulnerabilidad de PHP

¿Mi web es vulnerable si usa WordPress o PHP?

No se puede saber sin mirarla. Depende de la versión exacta de PHP, de cómo la sirve el servidor y de si tu proveedor ya ha aplicado el parche. Las distribuciones de Linux y los proveedores con soporte extendido recibieron los arreglos antes de que se publicaran. Eso es justo lo que comprueba el diagnóstico.

¿Qué versiones de PHP corrigen los fallos?

PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35, publicadas el 21 de octubre de 2026. Cualquier versión anterior de esas ramas está afectada, salvo que tu proveedor haya aplicado el parche por su cuenta.

¿Qué tan grave es?

PHP lo califica de crítico, con una puntuación CVSS v4.0 de 9,2 sobre 10 en los dos fallos. Permiten ejecutar código en el servidor sin iniciar sesión, con los permisos del usuario que ejecuta la web. Explotarlos no es trivial (la complejidad del ataque es alta), pero en Apache con mod_php el ataque está demostrado.

¿Mi hosting no lo arregla solo?

En muchos hostings compartidos, sí: actualizan PHP o aplican un parche propio. Pero si tu web está fijada en una versión antigua (7.4, 8.0, 8.1), si tienes servidor propio o VPS, o si nadie revisa el panel, puede seguir sin corregir. Lo comprobamos y te decimos en qué caso estás.

¿Cómo veo la versión de PHP en WordPress?

En el escritorio de WordPress, entra en Herramientas → Salud del sitio → Información y abre el apartado «Servidor». Ahí aparece la versión de PHP que usa la web. Compárala con la tabla de versiones corregidas de esta página.

Mi web está en PHP 7.4, 8.0 u 8.1. ¿Qué hago?

Esas versiones ya no reciben arreglos oficiales de PHP. O tu proveedor tiene un parche propio (pregúntale y pídele el boletín), o hay que subir a una versión con soporte, comprobando antes que tu web, sus plugins y su tema funcionan con ella. PHP ha publicado parches mínimos para 7.4, 8.0 y 8.1, pero son para quien compila PHP desde el código fuente, no para un hosting normal.

¿Basta con cambiar la configuración de PHP?

No. PHP propone medidas que reducen el riesgo mientras no puedes actualizar, pero lo dice claro: no dejan la instalación segura. Uno de los avisos llega a afirmar que no existe una mitigación completa por configuración. La única solución es actualizar.

¿Me afecta si mi web está en Shopify, Wix o Squarespace?

No tienes que hacer nada: son plataformas cerradas en las que no gestionas el servidor ni la versión de PHP. Esto afecta a webs que tienen PHP en su propio hosting o servidor: WordPress, WooCommerce, PrestaShop, Joomla, Drupal, Magento, Moodle o aplicaciones hechas a medida en PHP.

¿Actualizar PHP puede romper mi web?

Subir una versión menor dentro de la misma rama (por ejemplo, de 8.3.30 a 8.3.36) rara vez da problemas. Saltar de rama (de 7.4 a 8.3, por ejemplo) sí puede romper plugins, temas o código antiguo. Por eso se hace con copia de seguridad y comprobando antes formularios, pagos y el resto de funciones.

¿Qué necesitáis de mí para el diagnóstico?

Acceso al panel del hosting, o el contacto de quien lo gestiona. Acordamos por escrito qué se revisa y cuándo antes de tocar nada. Nunca nos mandes contraseñas por un formulario ni por correo sin cifrar.

¿Y si después del diagnóstico no hace falta nada?

Te lo decimos y no hay nada más que pagar. Solo se paga el diagnóstico (49 € + IVA). Si hace falta actualizar, te damos precio cerrado antes de empezar.

¿Hacéis pruebas de ataque sobre mi web?

No. Revisamos versiones, configuración y parches con tu permiso y por el acceso que nos des. No lanzamos exploits ni escaneos agresivos contra ninguna web, tampoco contra la tuya.

Glosario

Glosario rápido para entender los avisos

CVE
Identificador público de una vulnerabilidad concreta. Sirve para que todo el mundo hable del mismo fallo: CVE-2026-109618 es uno, CVE-2026-109619 es otro.
CVSS
Escala de 0 a 10 que mide la gravedad de una vulnerabilidad. De 9 a 10 se considera crítica. Estos dos fallos tienen 9,2 en la versión 4.0 de la escala.
Ejecución remota de código (RCE)
Que alguien, desde fuera y sin estar delante del servidor, consiga que tu servidor ejecute las órdenes que quiera.
mod_php, PHP-FPM, LiteSpeed
Las distintas formas en que el servidor web arranca PHP para atender a cada visita. De eso depende en parte el riesgo de este fallo.
Parche retroportado (backport)
Arreglo que una distribución de Linux o un proveedor aplica a una versión antigua sin cambiarle el número. Por eso el número de versión no siempre dice si estás protegido.
Rama de PHP
Cada serie de versiones con el mismo número principal: 8.2, 8.3, 8.4, 8.5. Dentro de una rama se actualiza sin grandes cambios; cambiar de rama exige probar.
Staging
Copia de la web en un entorno aparte donde probar cambios sin que los vean los clientes.

Fuentes

De dónde sale esta información

Todo lo técnico de esta página sale de los avisos oficiales, que conviene leer si gestionas el servidor:

Esta página la mantiene el equipo de QAmezIA y la actualizamos si PHP publica cambios. Si ves algo que no cuadra con los avisos oficiales, escríbenos a hola@qamezia.com.

¿Prefieres que lo revisemos nosotros?

Déjanos tu teléfono y tu web y te llamamos para ver tu caso. Dejar tus datos no nos autoriza a revisar nada: el alcance se acuerda contigo por escrito.

Sin compromiso. Te llamamos en menos de 24h. Sin spam.