El 20 de octubre por la tarde, el proyecto PHP avisó con antelación a unos pocos de que al día siguiente publicaría parches para dos fallos críticos. El equipo de Laravel tenía menos de 24 horas para proteger todas las aplicaciones de Laravel Cloud, y esta semana ha publicado un post-mortem de cómo lo hizo. Es de lo mejor que he leído sobre PHP2Shell.
Lo habitual habría sido reconstruir las imágenes y pedir a cada cliente que desplegase de nuevo. Descartaron esa vía porque tardaba demasiado y porque un despliegue ejecuta migraciones y otros comandos que no podían lanzar en nombre de nadie. Así que compilaron PHP ellos mismos, sin esperar a Docker Hub, y un operador de Kubernetes metió los binarios parcheados en cada aplicación al arrancar. Antes de que el parche fuese público ya habían activado reglas de cortafuegos en Cloudflare y probado el mecanismo en dos regiones pequeñas. A las 18:05 UTC, todas las regiones estaban parcheadas sin que los clientes tocasen nada.
Lo que más me ha gustado es la parte de lo que salió mal. En Forge, la avalancha de actualizaciones de PHP dejó la cola de despliegues bloqueada, anunciaron demasiado pronto que estaba resuelto y acabaron cancelando unos 4.800 despliegues. A los clientes de Vapor les dijeron primero que redesplegarían por ellos y luego que lo hicieran ellos mismos. Lo cuentan sin rodeos, con la lista de cambios: despliegues en su propia cola, un periodo de espera antes de dar algo por recuperado y un responsable fijo por canal de comunicación. Si gestionas servidores, saca de ahí tu propia lista.
PHP2Shell no es lo único de la semana. CISA confirma que ya se explota el fallo del actualizador de WordPress, y quien lo descubrió avisa de que instalar el parche puede exponer el sitio una última vez: bloquea el acceso web mientras actualizas. Y una buena noticia para terminar, la PHP Foundation va a invertir en la biblioteca estándar mientras PHP 8.6 llega a la RC5.
Lo más importante
Tres semanas después, PHP2Shell sigue dando lecciones. Y WordPress y WooCommerce vuelven a pedir actualizar.
- Laravel parcheó PHP2Shell en Laravel Cloud en 27 horas — Construyeron su propio PHP antes que Docker Hub y lo metieron en cada aplicación sin redesplegar. También cuentan lo que falló: 4.800 despliegues cancelados en Forge.
- CISA confirma que ya se explota el fallo del actualizador de WordPress — La CVE-2026-119977 (CVSS 8.1) entra en el catálogo KEV de CISA. Es una condición de carrera que permite ejecutar código mientras WordPress se actualiza.
- La PHP Foundation invierte en la biblioteca estándar — Funciones como
str_replace()o clases comoDateTimeImmutableson lo único que comparten todos los proyectos PHP. La fundación va a dedicar trabajo a mejorarlas y a diseñarlas mejor. - Instalar el parche puede exponer el sitio una última vez — La actualización descomprime los archivos con el código antiguo, aún vulnerable. Quien descubrió el fallo aconseja bloquear el acceso web al sitio mientras actualizas.
- Actualización de seguridad de WooPayments — Corrige un fallo en una función de suscripciones. Si usas WooPayments, comprueba que tienes la versión indicada en el aviso.
- WooCommerce 11.2.2, otra versión de seguridad — Casi todos los cambios son de seguridad y el equipo recomienda actualizar cuanto antes.
- El equipo de seguridad de WordPress busca fallos antes de que se los reporten — Ha bajado los informes pendientes de 359 a menos de cien y ahora prueba herramientas de IA para encontrar vulnerabilidades en el núcleo. Además, quiere pagar más a quienes investigan.
PHP y Symfony
PHP 8.6 sigue con sus versiones candidatas y Symfony 8.2 enseña dos novedades que te ahorran código repetido.
- PHP 8.6.0 RC5, listo para probar — Quinta versión candidata de PHP 8.6. Si mantienes una biblioteca o un framework, es buen momento para pasar tus tests con ella.
- Novedades de PhpStorm 2026.3 — Admite PHP 8.6, trae un espacio de trabajo para agentes y mejora el desarrollo remoto y en WSL.
- Symfony 8.2: formularios que leen los tipos de tus clases — Si el formulario va respaldado por un DTO con propiedades tipadas, el componente Form usa esos tipos y no tienes que repetirlos al definir los campos.
- Symfony 8.2: un grabador de peticiones HTTP — Graba las respuestas reales de una API y reprodúcelas en los tests sin volver a llamarla.
- Symfony UX 3.7 — Más de cien pull requests. Llega UX CSS, experimental, que convierte tokens de diseño en CSS atómico, y UX Toolkit deja de ser experimental.
- EasyAdmin estrena diseño — Javier Eguiluz enseña la nueva interfaz de la próxima versión de EasyAdmin, rediseñada de arriba abajo para los backends de Symfony.
- Sonda: cobertura de líneas y ramas sin Xdebug ni PCOV — Instrumenta el código antes de cargarlo, como Istanbul en JavaScript. En una aplicación de 4.514 tests mide líneas y ramas casi sin coste de tiempo.
Laravel
Semana de herramientas: Herd 2 y una alternativa gratuita, Flock. Y dos lecturas para entender mejor lo que ya usas.
- Laravel Herd 2: agentes, workspaces y despliegues a Laravel Cloud — Herd Studio ejecuta agentes de código sobre tus sitios locales, los workspaces de git permiten trabajar en paralelo y puedes desplegar en Laravel Cloud sin salir de la aplicación.
- Laravel 13.40 avisa de las colas lentas — Callbacks para trabajos y tareas programadas lentos,
insertBefore()einsertAfter()para el middleware y un modo estricto eninteger()oboolean()de la petición. - Inertia.js 3.11 recarga props en tiempo real — Las live props se vuelven a pedir cuando llega un evento emitido por broadcast, con Reverb, Pusher, Echo o Action Cable.
- Flock, una alternativa gratuita a Herd — Aplicación de código abierto para desarrollo local con Laravel: PHP, Node, bases de datos, correo y HTTPS nativos en macOS, Windows y Linux.
- Ajusta Horizon antes de añadir workers — Una lista práctica para revisar conexiones,
timeout,retry_after, despliegues y alertas de espera. - Cómo funciona por dentro el contenedor de servicios de Laravel — Omar Đečević quería saber por qué los servicios aparecen solos en el
handle()de un job, así que escribió su propio contenedor para entenderlo.
WordPress
WordPress 7.2 va tomando forma y los nombres de usuario vuelven a estar en la mesa, ahora desde el núcleo.
- WordPress 7.2 beta 4 — Otra beta para probar en local o en un entorno de pruebas, nunca en producción.
- WordPress 7.2 añade un endpoint /random/ — Una visita a tusitio.com/random/ lleva a una entrada publicada al azar. Viene activado por defecto y usa las API de reescritura y
WP_Query. - Iconos SVG en la barra y el menú de administración — WordPress 7.2 cambia los Dashicons por SVG en línea de
@wordpress/icons. Si tu plugin pinta iconos en el menú, conviene revisarlo. - Reglas más estrictas para los nombres de usuario — Fuera de multisitio, el registro no aplica la limpieza estricta de
sanitize_username. Se propone tratar cada alta como hostil y aceptar menos caracteres. - Cuatro sitios por donde WordPress filtra los nombres de usuario — El archivo de autor, la API REST, el sitemap y el formulario de acceso. Con un
curlpara comprobar cada uno y la forma de cerrarlo. - WordPress Studio, ahora como espacio de trabajo con agente — Describes lo que quieres y un agente monta una primera versión del sitio en local. Para cambiar algo, se lo pides.
- Stubs de PHP automáticos para extensiones de WooCommerce — El paquete
woocommerce/php-stubspermite que PHPStan compruebe las llamadas de tu extensión a las clases de WooCommerce. - WordCamp Galicia 2026, vista desde la organización — Primera vez liderando la WordCamp: sede nueva, equipo y lo aprendido al otro lado.
Más allá de PHP
Dos avisos para quien administra servidores o busca trabajo, y una herramienta para auditar tu propio código.
- Binance explica el robo de 6.430 millones — Una oferta de trabajo falsa y una instalación de Homebrew manipulada contra dos de sus ingenieros. Si buscas trabajo como desarrollador, desconfía de las pruebas técnicas que te hacen instalar cosas.
- Cloudflare publica su skill de auditoría de seguridad — Una skill para agentes de código que audita un repositorio en varias fases, verifica cada hallazgo por separado y los entrega en un formato legible por máquina.
- Ya se explota SSHole, el fallo de autenticación de OpenSSH — Una contraseña muy larga basta para entrar en algunas cuentas con la contraseña deshabilitada. Si gestionas servidores, actualiza OpenSSH.
Para escuchar
Internals, PHP2Shell una semana después y la cifra de informes de seguridad de WordPress este año.
- Esta semana en PHP Internals, 5 de noviembre — Repaso semanal en vídeo de las RFC y los debates de la lista de internals.
- Ayuda WordPress: PHP2Shell una semana después — Fernando Tellado repasa cómo quedó WordPress tras PHP2Shell y habla de la web agéntica y de AI Overviews.
- WordPress ya supera los 3.000 informes de seguridad en 2026 — Durante diez años, su programa en HackerOne recibió entre 20 y 30 informes al mes. Este año ya lleva más que en los doce anteriores juntos.