[{"data":1,"prerenderedAt":215},["ShallowReactive",2],{"seo-verification":3,"blog-php2shell-cve-2026-109618-109619-actualizar-php-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-php2shell-cve-2026-109618-109619-actualizar-php-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":153,"ctaBody":154,"ctaButton":155,"ctaUrl":156,"relatedPosts":157},489,"php2shell-cve-2026-109618-109619-actualizar-php",{"fr":12,"en":13,"ar":14,"es":10},"php2shell-cve-2026-109618-109619-mettre-a-jour-php","php2shell-cve-2026-109618-109619-patch-php","php2shell-cve-2026-109618-109619-تحديث-php","PHP2Shell: cómo corregir CVE-2026-109618 y CVE-2026-109619","PHP2Shell: dos fallos críticos de PHP explotables sin cuenta. Versiones corregidas, comandos de actualización por sistema y medidas temporales.",9,0,false,"2026-10-22T00:00:00+00:00","2026-10-22T01:57:44+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fphp2shell-cve-2026-109618-109619-mettre-a-jour-php-poster.svg","El 21 de octubre de 2026, el equipo de seguridad de PHP publicó de urgencia PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35. Estas versiones corrigen dos fallos apodados «PHP2Shell»: CVE-2026-109618 y CVE-2026-109619, con una puntuación de 9.2 sobre 10 en CVSS 4.0. Afectan al propio intérprete, no a una aplicación: basta una sola solicitud HTTP anónima, incluso antes de que se ejecute su código. Se observan intentos de explotación desde el mismo día de la publicación. A continuación se explica qué hacen estos dos fallos, cómo saber si sus servidores están expuestos y cómo corregirlos en Debian, Ubuntu, RHEL, cPanel y Docker.",[35,39,49,52,82,85,101,104,122,125,129,132,147,150],{"type":36,"title":37,"body":38},"h2","PHP2Shell en resumen","PHP2Shell no es un fallo de WordPress, de Laravel ni de un plugin: lo que está en cuestión es el propio motor de PHP. Por lo tanto, toda aplicación PHP que responda a solicitudes web está afectada, sea cual sea su código. El aviso de seguridad menciona PHP-FPM, Apache con `mod_php`, `php-cgi`, FrankenPHP y LiteSpeed.\n\nAmbos fallos comparten el mismo mecanismo. Cuando PHP interrumpe bruscamente una solicitud (memoria agotada, error fatal), puede dejar tras de sí un estado interno a medio inicializar o ya liberado. Una solicitud posterior, atendida por el mismo proceso PHP, reutiliza entonces ese estado: eso es lo que abre la puerta a una ejecución remota de código.",{"type":40,"title":41,"items":42},"ul","Lo que hay que recordar",[43,44,45,46,47,48],"**CVE-2026-109618** — corrupción de memoria al superar `memory_limit`: los datos de la solicitud, inicializados solo en parte, se tratan después como válidos durante la limpieza.","**CVE-2026-109619** — estado global obsoleto: un estado propio de una solicitud sobrevive a la liberación de su memoria y puede ser leído por la siguiente solicitud en el mismo proceso.","**Puntuación**: 9.2 sobre 10 en CVSS 4.0 para cada una, sin autenticación ni interacción del usuario.","**Versiones corregidas**: PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35. El proyecto ya no publica versiones para 8.1 ni para las ramas anteriores.","**Explotación**: watchTowr informa de intentos de explotación en sus trampas de red desde el 21 de octubre de 2026.","**Alcance**: los investigadores estiman que las ramas afectadas se remontan hasta PHP 5.4, aunque no se ha probado cada versión de forma individual.",{"type":36,"title":50,"body":51},"Por qué estos dos fallos son tan peligrosos","La mayoría de los fallos web exigen un formulario concreto, una cuenta o un plugin vulnerable. PHP2Shell no necesita nada de eso: el desencadenante más habitual es el procesamiento de un envío `multipart\u002Fform-data` con el seguimiento del progreso de sesiones (`session.upload_progress`), un mecanismo que PHP activa por defecto y que se ejecuta **antes** del primer byte de su aplicación. Un cortafuegos de aplicación ubicado en su código, un plugin de seguridad de WordPress o un middleware de Laravel llegan, por tanto, demasiado tarde.\n\nEl segundo factor es el propio modelo de ejecución. PHP-FPM y Apache reutilizan el mismo proceso para cientos de solicitudes sucesivas: eso es precisamente lo que permite que una solicitud maliciosa contamine la siguiente. Según Imperva, las técnicas publicadas van desde la caída de procesos hasta la lectura de archivos arbitrarios a través de la caché OPcache, pasando por la fuga de unos 67 KB de memoria del proceso en una cookie `PHPSESSID` sobredimensionada. Esa memoria puede contener contraseñas de bases de datos o claves de API.",{"type":53,"title":54,"headers":55,"rows":59},"comparison","Qué versión instalar según su rama",[56,57,58],"Rama de PHP","Versión corregida","Qué hacer",[60,64,67,70,74,78],[61,62,63],"8.5","8.5.12","Actualizar y luego reiniciar PHP",[65,66,63],"8.4","8.4.27",[68,69,63],"8.3","8.3.36",[71,72,73],"8.2","8.2.35","Actualizar y luego planificar la migración a 8.3 u 8.4",[75,76,77],"8.1, 8.0, 7.4","Ninguna versión oficial","Paquete corregido de su distribución, retroportación del código fuente o, si no, migración",[79,80,81],"7.3 y anteriores, 5.x","Ningún parche publicado","Migrar a una rama mantenida",{"type":36,"title":83,"body":84},"Comprobar si sus servidores están expuestos","Cuidado con una trampa clásica: la versión que muestra `php -v` en la línea de comandos no es necesariamente la que sirve sus sitios. Un servidor puede tener varias versiones de PHP-FPM instaladas en paralelo, y cada sitio puede apuntar a una versión distinta. Por lo tanto, hay que comprobar la versión que realmente sirve la web, sitio por sitio.",{"type":86,"title":87,"steps":88},"steps","Inventariar las versiones de PHP servidas",[89,92,95,98],{"title":90,"body":91},"Listar las versiones instaladas","En Debian o Ubuntu:\n\n```bash\ndpkg-query -W -f='${db:Status-Abbrev} ${Package} ${Version}\\n' 'php*' | awk '$1==\"ii\"' | grep -E 'php[0-9.]+-(fpm|cli|common)|libapache2-mod-php'\n```\n\nEn RHEL, AlmaLinux o Rocky Linux:\n\n```bash\nrpm -qa 'php*' 'ea-php*' 'alt-php*' | sort\n```",{"title":93,"body":94},"Localizar los procesos PHP en ejecución","```bash\nsystemctl list-units --type=service --state=running | grep -E 'php|apache2|httpd|lsws'\n```\n\nCada servicio `phpX.Y-fpm` activo es una versión que hay que comprobar y corregir.",{"title":96,"body":97},"Leer la versión que sirve un sitio","Coloque un archivo temporal en la raíz del sitio, consúltelo y después **elimínelo de inmediato**:\n\n```bash\necho '\u003C?php echo PHP_VERSION, \" \", PHP_SAPI;' > \u002Fvar\u002Fwww\u002Fmonsite\u002Fv-check.php\ncurl -s https:\u002F\u002Fmonsite.example\u002Fv-check.php\nrm \u002Fvar\u002Fwww\u002Fmonsite\u002Fv-check.php\n```\n\nUn resultado `8.3.36 fpm-fcgi` indica una versión corregida servida por PHP-FPM.",{"title":99,"body":100},"Revisar los contenedores Docker","```bash\ndocker ps --format '{{.Names}}' | while read c; do echo \"$c: $(docker exec \"$c\" php -r 'echo PHP_VERSION;' 2>\u002Fdev\u002Fnull)\"; done\n```\n\nUn contenedor sin PHP no muestra nada después de su nombre.",{"type":36,"title":102,"body":103},"Aplicar el parche","Las distribuciones Linux y los proveedores de soporte extendido recibieron los parches antes de la publicación. Por eso, el paquete corregido de su distribución no lleva necesariamente el número 8.3.36: Ubuntu 24.04, por ejemplo, corrige su versión 8.3.6 en el paquete `8.3.6-0ubuntu0.24.04.13`. Confíe en el aviso de seguridad de su distribución más que en el número de versión de PHP por sí solo. En cualquier caso, **el reinicio es imprescindible**: mientras los procesos antiguos sigan en ejecución, es el código antiguo el que responde.",{"type":86,"title":105,"steps":106},"Actualizar PHP según su entorno",[107,110,113,116,119],{"title":108,"body":109},"Debian y Ubuntu","```bash\nsudo apt update\nsudo apt install --only-upgrade $(dpkg-query -W -f='${db:Status-Abbrev} ${Package}\\n' 'php*' | awk '$1==\"ii\"{print $2}')\nsudo systemctl restart 'php*-fpm'\nsudo systemctl restart apache2   # si usa mod_php\n```\n\nSi sus versiones proceden de un repositorio de terceros (por ejemplo, el PPA `ondrej\u002Fphp`), compruebe que la versión instalada tras la actualización sea realmente una versión corregida.",{"title":111,"body":112},"RHEL, AlmaLinux, Rocky Linux","```bash\nsudo dnf upgrade 'php*'\nsudo systemctl restart php-fpm\nsudo systemctl restart httpd\n```\n\nAlmaLinux publicó sus paquetes corregidos el 21 de octubre de 2026. El repositorio comunitario Remi, en cambio, no tenía ninguna actualización disponible en el momento del anuncio: si depende de él, compruebe después la versión instalada.",{"title":114,"body":115},"Servidor cPanel (EasyApache 4 o CloudLinux)","```bash\nsudo dnf upgrade 'ea-php*' 'alt-php*'\n\u002Fscripts\u002Frestartsrv_apache_php_fpm\n\u002Fscripts\u002Frestartsrv_httpd\n```\n\nEn un servidor más antiguo, sustituya `dnf` por `yum`. Después, revise cada versión en **WHM › MultiPHP Manager**: una cuenta que siga configurada en una rama sin parche (7.x, 8.0, 8.1) debe pasarse a una versión mantenida.",{"title":117,"body":118},"Contenedores Docker","```bash\ndocker compose pull\ndocker compose up -d --force-recreate\ndocker compose exec app php -r 'echo PHP_VERSION;'\n```\n\nSi su `Dockerfile` parte de una imagen `php:8.3-fpm`, reconstruya la imagen con `docker compose build --pull`: sin `--pull`, Docker reutiliza la antigua imagen base almacenada en caché.",{"title":120,"body":121},"Comprobar el resultado","Vuelva a ejecutar la comprobación del paso anterior en cada sitio. El parche solo está aplicado si la versión **servida por la web** está corregida, no únicamente la versión instalada en el disco.",{"type":36,"title":123,"body":124},"Si no puede actualizar de inmediato","El aviso oficial de PHP propone ajustes que **reducen** la exposición sin hacer que la instalación sea segura. Sirven para ganar unas horas, no para sustituir el parche. Deben establecerse en `php.ini`, en el pool de PHP-FPM o en la configuración del servidor web, nunca mediante `ini_set()` ni con un archivo `.user.ini`: estos últimos se leen demasiado tarde, después del análisis de la solicitud.\n\nContra CVE-2026-109619, desactive el seguimiento del progreso de los envíos. En PHP 8.5, desactive también las trazas de errores fatales:\n\n```ini\n; en el pool FPM, por ejemplo \u002Fetc\u002Fphp\u002F8.3\u002Ffpm\u002Fpool.d\u002Fwww.conf\nphp_admin_flag[session.upload_progress.enabled] = off\n; solo PHP 8.5:\nphp_admin_flag[fatal_error_backtraces] = off\n```\n\nContra CVE-2026-109618, el aviso recomienda `memory_limit = -1` impuesto mediante `php_admin_value`, para que ninguna aplicación pueda redefinirlo, y un tamaño de solicitud acotado (`post_max_size = 8M`, o 32M si necesita envíos de archivos). A cambio, la memoria debe limitarse en otro lugar, mediante un límite de contenedor o de cgroup. No utilice `RLIMIT_AS` ni `RLIMIT_DATA`: son precisamente los que provocan el fallo de asignación vulnerable.\n\nDespués, reinicie **todos** los procesos PHP para que los ajustes se apliquen.",{"type":126,"title":127,"body":128},"tip","Añada una barrera delante de PHP","Limite el tamaño de las solicitudes en el servidor web, antes de que lleguen a PHP: `client_max_body_size 8m;` en nginx, `LimitRequestBody 8388608` en Apache. Si su sitio pasa por Cloudflare en modo proxy, se han desplegado reglas WAF dirigidas a los vectores conocidos de PHP2Shell para todas las cuentas, incluido el plan gratuito. Son redes de seguridad: solo la actualización de PHP cierra el fallo.",{"type":36,"title":130,"body":131},"Buscar rastros de explotación","Los intentos publicados dejan rastros característicos: procesos PHP que se caen, desbordamientos de memoria en ráfaga y envíos `multipart` anormalmente voluminosos. Si su servidor estuvo expuesto antes de la actualización, dedique diez minutos a comprobarlo.",{"type":86,"title":133,"steps":134},"Controles que realizar después del parche",[135,138,141,144],{"title":136,"body":137},"Buscar los procesos PHP-FPM terminados","```bash\nsudo grep -E 'exited on signal (11|6)' \u002Fvar\u002Flog\u002Fphp*-fpm.log | tail -20\n```\n\nUna serie de procesos terminados por la señal 11 (SIGSEGV) desde el 21 de octubre es una señal de alerta.",{"title":139,"body":140},"Buscar los desbordamientos de memoria","```bash\nsudo grep -rh 'Allowed memory size' \u002Fvar\u002Flog\u002Fphp* \u002Fvar\u002Flog\u002Fnginx \u002Fvar\u002Flog\u002Fapache2 2>\u002Fdev\u002Fnull | tail -20\n```",{"title":142,"body":143},"Localizar los archivos PHP creados recientemente","```bash\nsudo find \u002Fvar\u002Fwww \u002Fhome -name '*.php' -newermt '2026-10-20' -not -path '*\u002Fvendor\u002F*' -not -path '*\u002Fcache\u002F*' -ls\n```\n\nUn archivo desconocido con un nombre genérico, en una carpeta de subidas o en `\u002Ftmp`, debe examinarse antes de eliminarlo.",{"title":145,"body":146},"En caso de duda, tratar el servidor como comprometido","Aísle la máquina, conserve una copia de los registros y, a continuación, renueve las contraseñas de la base de datos, las claves de API y los secretos presentes en los archivos `.env`: una fuga de memoria puede haberlos expuesto sin dejar ningún otro rastro.",{"type":36,"title":148,"body":149},"En un alojamiento compartido","En un alojamiento compartido, no es usted quien actualiza PHP: es el proveedor de alojamiento quien mantiene las versiones disponibles. Su parte del trabajo consiste en comprobar que su sitio utiliza una rama que todavía recibe parches. En cPanel, la herramienta de selección de versión (**MultiPHP Manager**, o **Select PHP Version** en un servidor CloudLinux) indica la versión activa de cada dominio. Si su sitio todavía funciona con 7.4, 8.0 u 8.1, esas ramas ya no reciben versiones oficiales de PHP: cambie a 8.3 u 8.4 después de probar su sitio, siguiendo \u003Ca href=\"\u002Fes\u002Fblog\u002Fphp-82-fin-de-vida-planificar-la-migracion\">nuestra lista de comprobación para migrar PHP\u003C\u002Fa>.",{"type":36,"title":151,"body":152},"La documentación oficial","Los detalles técnicos y los ajustes de mitigación se publican en \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Farchive\u002F2026.php\">el aviso de seguridad de PHP\u003C\u002Fa> y en los avisos de GitHub \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fphp\u002Fphp-src\u002Fsecurity\u002Fadvisories\u002FGHSA-w8hw-w9fx-j79w\">GHSA-w8hw-w9fx-j79w\u003C\u002Fa> (CVE-2026-109618) y \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fphp\u002Fphp-src\u002Fsecurity\u002Fadvisories\u002FGHSA-6wmf-4rv5-p3rp\">GHSA-6wmf-4rv5-p3rp\u003C\u002Fa> (CVE-2026-109619). Para los paquetes de distribución, consulte \u003Ca href=\"https:\u002F\u002Fubuntu.com\u002Fblog\u002Fphp2shell-vulnerability-fixes-available\">el anuncio de Ubuntu\u003C\u002Fa> y \u003Ca href=\"https:\u002F\u002Falmalinux.org\u002Fblog\u002F2026-10-21-php2shell-cve-2026-109618-cve-2026-109619\u002F\">el de AlmaLinux\u003C\u002Fa>.","Mantenga el control de sus versiones de PHP","En un VPS ServOrbit.com, usted dispone de acceso root: aplica un parche de PHP en cuanto se publica, elige la versión de cada sitio y reinicia sus servicios cuando lo decide.","Descubrir los VPS","\u002Fvps-cloud",[158,175,197],{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":168,"isPinned":19,"publishedAt":169,"updatedAt":170,"category":171,"categories":172,"featuredImage":30,"bgImage":31,"posterImage":174,"relatedSolution":30},382,"actualizaciones-seguridad-vps-debian-ubuntu",{"fr":162,"en":163,"ar":164,"es":160},"securite-vps-mises-a-jour-automatiques-debian-ubuntu","vps-automatic-security-updates-debian-ubuntu","تحديثات-أمان-تلقائية-vps-debian-ubuntu","Actualizaciones de seguridad automáticas en VPS Debian\u002FUbuntu","Configure unattended-upgrades en sus VPS Debian\u002FUbuntu para automatizar los parches de seguridad y reducir la superficie de ataque en su flota de clientes.",10,2,"2026-09-26T00:00:00+00:00","2026-09-29T14:40:42+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[173],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fsecurite-vps-mises-a-jour-automatiques-debian-ubuntu-poster.svg",{"id":176,"slug":177,"slugs":178,"title":182,"excerpt":183,"readTime":184,"views":185,"isPinned":19,"publishedAt":186,"updatedAt":187,"category":188,"categories":194,"featuredImage":30,"bgImage":31,"posterImage":196,"relatedSolution":30},206,"php-82-fin-de-vida-planificar-la-migracion",{"fr":179,"en":180,"ar":181,"es":177},"php-82-fin-de-vie-checklist-migration","php-82-end-of-life-planning-your-migration","نهاية-دعم-php-82-دليل-الترحيل","PHP 8.2 fin de vida: checklist de migración","PHP 8.2 llega al final de su ciclo de vida el 31 de diciembre de 2026. Inventaría tu stack, compara versiones y sigue una checklist detallada para migrar a PHP 8.3 o 8.4.",11,5,"2026-08-01T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":189,"name":190,"slug":191,"color":192,"icon":193},4,"Desarrollo","developpement","bg-warning\u002F10 text-warning","dev",[195],{"id":189,"name":190,"slug":191,"color":192,"icon":193},"\u002Fblog\u002Fcovers\u002Fphp-82-fin-de-vie-checklist-migration-poster.svg",{"id":198,"slug":199,"slugs":200,"title":204,"excerpt":205,"readTime":23,"views":18,"isPinned":19,"publishedAt":206,"updatedAt":207,"category":208,"categories":209,"featuredImage":30,"bgImage":31,"posterImage":211,"relatedSolution":212},373,"wordpress-cve-2026-87902-actualiza-a-712-urgente",{"fr":201,"en":202,"ar":203,"es":199},"wordpress-cve-2026-87902-rce-mise-a-jour-7-1-2","wordpress-cve-2026-87902-update-to-712-now","ووردبريس-cve-2026-87902-ترقية-7-1-2","WordPress CVE-2026-87902: actualiza a 7.1.2 urgente","CVE-2026-87902 (CVSS 9.2) explotada activamente. Verifica tu versión, aplica WordPress 7.1.2 y entiende por qué el hosting compartido amplía tu exposición.","2026-09-24T00:00:00+00:00","2026-09-24T12:27:51+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[210],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fwordpress-cve-2026-87902-rce-mise-a-jour-7-1-2-poster.svg",{"categorySlug":213,"appSlug":214},"cms-sitios-web","wordpress",1792634824870]