¿Qué es PHP2Shell?

PHP2Shell es el nombre de dos fallas de seguridad en PHP, el lenguaje que usan WordPress y la mayoría de los sitios web de pequeños negocios. Se identifican como CVE-2026-109618 y CVE-2026-109619, y las dos tienen una puntuación crítica de 9.2 en CVSS 4.0.

CVE-2026-109618 es un error de corrupción de memoria que se puede activar cuando una petición deja a PHP sin memoria. CVE-2026-109619 es un error en el manejo del progreso de subida de archivos en sesiones, y PHP confirmó que se puede usar para ejecutar código de forma remota en PHP-FPM. Esa función viene activada por defecto, así que un sitio está expuesto aunque su código nunca use sesiones.

Con cualquiera de las dos, un atacante puede enviar una petición preparada a un sitio web y ejecutar su propio código en el servidor. No necesita contraseña. Desde ahí puede cambiar páginas, robar datos, enviar spam o usar el servidor para atacar a otros.

PHP publicó los parches el 21 de octubre de 2026. Empresas de seguridad reportaron intentos de ataque en cuestión de días, y algunos empezaron antes de que el parche fuera público.

¿Su sitio está afectado por CVE-2026-109618 o CVE-2026-109619?

Si su sitio usa PHP y el servidor no se ha actualizado desde el 21 de octubre, asuma que sí.

Eso incluye:

  • Sitios en WordPress, WooCommerce, Joomla y Drupal
  • Sitios hechos a la medida en PHP y aplicaciones en Laravel
  • Herramientas como phpMyAdmin
  • PHP corriendo dentro de contenedores Docker

No importa si el servidor usa Apache o Nginx. Todas las formas de correr PHP para la web están en la lista.

Si usted es cliente de Miami Web Lab

Sus sitios están protegidos.

Actualizamos PHP en todos nuestros servidores en menos de un día. Reconstruimos cada contenedor Docker que usa PHP y apagamos los que no tenían que estar corriendo. Después revisamos cada sitio en busca de archivos cambiados, procesos desconocidos y otras señales de intrusión. No encontramos ninguna.

No tiene que hacer nada.

Cómo revisar su propio servidor

Si usted administra su propio servidor, empiece aquí.

Ubuntu y Debian

Ubuntu y Debian parchan PHP sin cambiar el número de versión, así que php -v va a seguir mostrando la versión vieja después del parche. Revise la versión del paquete:

dpkg -l | grep -E '^ii\s+php[0-9.]+-(fpm|cgi|cli)|libapache2-mod-php'

Las versiones corregidas en Ubuntu son:

  • Ubuntu 22.04 con PHP 8.1: 8.1.2-1ubuntu2.28 o más alta
  • Ubuntu 24.04 con PHP 8.3: 8.3.6-0ubuntu0.24.04.13 o más alta

Otros servidores

Si instaló PHP desde php.net, un PPA o Remi, php -v sí es correcto. Necesita 8.2.35, 8.3.36, 8.4.27, 8.5.12 o una versión más nueva.

PHP 8.1 y versiones anteriores ya no reciben versiones oficiales. Si usa una de esas y su distribución de Linux no publica un parche, es hora de actualizar.

Docker

Este es el que la gente olvida. Cada contenedor tiene su propia copia de PHP, y actualizar el servidor no la toca. Revise cada uno:

for c in $(docker ps -q); do docker exec $c php -v 2>/dev/null | head -1; done

Cómo arreglar PHP2Shell

Ubuntu y Debian

sudo apt update
sudo apt install --only-upgrade 'php8.3*'
sudo systemctl restart php8.3-fpm

Cambie 8.3 por su versión. Si usa Apache con mod_php, reinicie Apache.

AlmaLinux, Rocky y Red Hat

sudo dnf update 'php*'
sudo systemctl restart php-fpm

Docker

Asegúrese de que su Dockerfile use una etiqueta de versión como php:8.2-apache y no una versión fija como php:8.2.33-apache. Después reconstruya con la opción pull para que Docker descargue la imagen parchada en vez de usar la vieja:

docker compose build --pull
docker compose up -d

Corra php -v dentro del contenedor para confirmar que muestra una versión corregida.

Hosting compartido y WordPress administrado

En un hosting compartido usted no puede parchar PHP. Pregúntele directamente a su proveedor si ya aplicó el parche de PHP2Shell. Un buen proveedor le va a contestar con un sí y una fecha.

Cómo saber si ya lo atacaron

El parche detiene ataques nuevos. No deshace uno que ya pasó. Después de parchar, busque:

  • Archivos PHP en la carpeta del sitio que usted no subió, sobre todo en carpetas de imágenes o de subidas
  • Archivos que pertenecen al usuario del servidor web en vez de a su usuario de despliegue
  • Procesos desconocidos corriendo como www-data
  • Tareas cron o usuarios nuevos
  • Caídas de PHP o errores de memoria en los registros

Si encuentra cualquiera de estas cosas, cambie todas las contraseñas y claves de API que usa el sitio y restaure desde un respaldo limpio.

En resumen

PHP2Shell es serio y lo están usando ahora mismo. El arreglo es una actualización de rutina, pero solo si alguien de verdad la aplica en cada servidor y cada contenedor.

Si usted es nuestro cliente, eso ya está hecho. Si no lo es y no está seguro de quién está cuidando su servidor, contáctenos. Lo revisamos y le decimos claramente si está expuesto.

Read this article in English.