Skip to content
Un WordPress de serie expone 133 rutas REST, 80 métodos XML-RPC y 1 514 ficheros PHP; este sitio estático no ejecuta nada al recibir una petición

Un Sitio Estático No Tiene Por Dónde Entrar

Este blog se construye con Hugo y se sirve como 6 343 ficheros planos, sin que ningún código mío se ejecute en ninguna petición. Frente a él, un WordPress 7.1.3 de serie medido en un laboratorio de podman: 133 rutas REST, 62 de ellas aceptan escrituras, 80 métodos XML-RPC, 1 514 ficheros PHP, cada uno de sus 3 785 ficheros escribible por el propio usuario del servidor web, y una cuenta de base de datos con todos los privilegios. Este post cuenta las dos superficies de ataque, explica qué hace el modelo de seguridad de Hugo durante la construcción, reconoce adónde se va el riesgo cuando ya no se ejecuta nada al servir, incluidos dos huecos en cómo se construía este sitio, uno de ellos ya cerrado, y explica cómo construir un sitio estático sin conexión, una sola vez, y subir solo los ficheros terminados.

23 de octubre de 2026 · 18 min · 4332 palabras · Damien Dye
757 CVE del intérprete de PHP desde 1997, al menos 288 de corrupción de memoria, 172 calificados como compromiso remoto total sin login

PHP: Veintinueve Años Dejando La Puerta Abierta

PHP2Shell, publicado el 21 de octubre de 2026, es ejecución remota de código sin autenticar en el propio intérprete de PHP, en todas las versiones desde la 5.4, y se explotó antes de que existiera el parche. Es la última entrada de un historial largo: 757 CVE contra el intérprete desde 1997, al menos 288 de ellos corrupción de memoria y 172 calificados como compromiso remoto total sin login. Este post cuenta ese historial a partir de NVD y del catálogo KEV de CISA, explica por qué un motor en C y un lenguaje que tardó una década en quitar register_globals cometen el mismo error dos veces, mira lo que WordPress hace con los números, cómo se quedan las web shells y cómo pararlas, las dos veces que entraron en el propio php.net, la parte de la web que sigue en versiones que nadie parchea, y por qué el despliegue habitual, un solo proceso que guarda las plantillas, la lógica, el SQL y la contraseña de la base de datos, convierte cada uno de esos fallos en todo. Y por qué, habiendo abandonado PHP yo mismo, creo que deberías plantearte dejarlo por un lenguaje con seguridad de memoria como Go.

23 de octubre de 2026 · 32 min · 8884 palabras · Damien Dye