«El punto de no retorno» por Felipe Cañizares

👻 La Newsletter de @weareDMNTRs 👻

Esta semana ha sido de las que se recuerdan. Jornadas de 12 y 14 horas, noches de dormir poco, el móvil vibrando a horas en las que solo deberían vibrar las alarmas de incendio. Y, aunque te parezca raro, la he disfrutado. He disfrutado de lo que sé, de lo que hago y, sobre todo, de lo que mi equipo es capaz de hacer cuando todo arde a la vez.

En mayo, con Copy Fail, te escribí que aquello era el ensayo general. Que la próxima vez serían dos, luego cinco, y que algún día llegaría uno remoto, sin cuenta local, en un servicio expuesto en Internet en todas partes. Pues ya está aquí y se llama PHP2Shell.

Dos vulnerabilidades en el motor de PHP, CVE-2026-109618 y CVE-2026-109619, las dos con un 9.2 en CVSS v4, las dos de ejecución remota de código sin autenticar. La pincelada técnica para quien la quiera: una juega con cómo PHP gestiona un error de memoria agotada cuando la petición está a medio inicializar, la otra con estado interno que sobrevive a la memoria que lo sostenía. Para quien no, el resumen: mandas una petición y el servidor es tuyo. Es difícil de explotar (al menos por ahora), pero… Y PHP está en todas partes, en tantas que muchas empresas ni saben dónde.

Las encontraron Wiz y Calif, esta última dentro del proyecto Patch The Planet de OpenAI. Con ayuda de IA, otra vez. Wiz las reportó en agosto y el plan era una divulgación coordinada de manual. El plan duró lo que duran los planes en un mundo de egos y movidas: NADA. El 20 de octubre se filtró su existencia, PHP tuvo que anunciar un parche de emergencia y nos tocó pasar unas 18 horas sabiendo que había algo gordo, sin detalles y sin parche. Diversión con banderas.

Y lo mejor: los honeypots de Amazon ya habían visto un intento de explotación el 17 de octubre, cuatro días antes de que existiera el parche. Kevin Beaumont lo resumió diciendo que es de lo más gordo en años. El jueves por la noche, según el tracker de Infrawatch, se parcheaban unas 7.000 instancias por hora. Siete mil por hora. Piensa en cuántas quedaban…

A nosotros nos tocó lidiar con todo esto, con servidores EOL, con movidas legacy, con compilaciones… pero el miércoles por la noche teníamos todo parcheado y funcionando. Sin downtime.

Y el jueves, con el café del parche todavía caliente, Jason Clinton, Deputy CISO de Anthropic, soltó un tuit de esos que se leen dos veces. Vino a decir que lo de estos cuatro días va a ir a mucho peor antes de mejorar, y pidió a los responsables de seguridad que fueran a sus consejos de dirección a pedir ayuda. «No para IA, para lo básico». Y entre paréntesis, como quien no quiere la cosa: hay que aguantar unos 18 meses.

No era la primera vez. En agosto ya había avisado de un tsunami de vulnerabilidades para el que no habría tiempo de parchear infraestructura crítica, y recomendaba aislar redes.

🧐 – “¿Y por qué 18 meses? ¿Qué pasa en 18 meses?”

👻 – “Él lo llama vulnzero. Lo que hoy hace un modelo como Mythos acabará en modelos pequeños y baratos, todo el que programe los meterá en su pipeline por céntimos y dejaremos de publicar bugs.”

Bonito. Ojalá. Pero vamos por partes.

Primero, esto es una opinión de parte. Quien vende la cura es el mismo que anuncia la enfermedad, y conviene tenerlo presente. A Clinton le contestó alguien acusando a los laboratorios de haber creado el monstruo y pedir ahora ayuda para limpiarlo, y él respondió, sin pestañear, que siempre iba a ser así y que intentaron avisar al mundo. Puedes leerlo como arrogancia o como honestidad brutal, yo creo que es un poco de las dos.

Por favor, lea también   Inglés conversacional

Segundo, en el diagnóstico no se equivoca. El programa de bug bounty de WordPress en HackerOne recibió durante una década entre 20 y 30 reportes al mes. En agosto de 2026 fueron 773. De 30 a 773. Eso no es una tendencia, es un cambio de régimen. Y el arma corta por los dos lados: OpenAI presume de que su modelo ayudó a encontrar una de las de PHP, y esa misma capacidad acelera escribir el exploit.

Tercero, y aquí es donde me duele: los 18 meses no los aguanta un modelo, los aguantan personas.

En la mayoría de equipos que conozco, el trabajo ya era inabarcable antes de todo esto. Pocos recursos, demasiados frentes y el desgaste mental de vivir con un CVE crítico cada semana. En los SOC la rotación por agotamiento supera el 25% anual en muchos casos, y sustituir a un analista cuesta de seis a doce meses. En una ciudad pequeña como la mía, bastante más. No se puede contratar para salir de esto, no hay gente y no hay dinero suficiente en la alcancía.

Y el cansancio no es solo un problema de recursos humanos, es un problema de seguridad. Un técnico reventado toma atajos: silencia alertas en bloque, mira solo lo que la herramienta marca en rojo, se fía del CVSS y no de lo que se está explotando de verdad. Cada atajo es un punto ciego y los puntos ciegos, en 2026, se encuentran en una hora. O en 10 minutos. Depende de los tokens que quieras gastar.

Una semana de 14 horas se disfruta. Te sube la adrenalina, te sientes útil, el equipo hace piña, acabas las tardes con música china de fondo y un gatito de estos moviendo el brazo, «The chinese factory» lo llamábamos esta semana… Dieciocho meses de semanas así te queman, a ti y a los tuyos. El sprint no puede ser el plan.

Esta semana he llegado a una conclusión que no es nueva, pero que ahora tengo clarísima: la única manera seria, y humana, de abordar esto es con un equipo bien entrenado y muchas automatizaciones e IA. Tomás Ledo me lo dijo con una frase que me voy a tatuar: “los agentes son el nuevo Ansible”.

Y tiene razón, aunque en septiembre te dijera que un agente no es Ansible con un chatbot delante. Las dos cosas son verdad. Ansible fue lo que permitió que un equipo pequeño gestionara cientos de servidores sin morir en el intento. Los agentes son ese mismo salto, ahora. La diferencia es que el playbook ejecuta lo que le dices y el agente decide qué ejecutar, y por eso hay que atarlo más corto.

Pero hay algo que Ansible nos enseñó y que con los agentes se olvida: Ansible solo funciona si sabes qué tienes. Sin inventario no hay playbook que valga. PHP2Shell lo ha dejado clarísimo: quien no sabía dónde corría PHP, incluido dentro de appliances y software de terceros, ha tenido que hacer el inventario a la vez que parcheaba. Con agentes pasa igual: sin saber qué tienes y dónde, solo automatizas el caos más rápido.

Así que cuando Clinton, el de Anthropic, dice “lo básico”, yo lo traduzco así:

  • Inventario vivo, no una hoja de cálculo de hace seis meses.
  • Exposición mínima: lo que no tiene que estar en Internet, fuera, y lo crítico, aislado.
  • Parcheo automatizado y probado, que se despliegue en horas y no en semanas.
  • Mitigaciones de transición, porque habrá más días como el 20 de octubre, con el problema publicado y sin parche.
  • Agentes haciendo el triaje y priorizando por explotación real.
  • Y lo que nadie pone en las diapositivas: turnos, guardias rotativas y descanso. Un técnico agotado es una vulnerabilidad más, y de las que no se arreglan con un apt upgrade.

¿Aguantaremos 18 meses? No lo sé. Quizá sean 18, quizá 36, quizá Clinton se equivoque y esto no se arregle nunca…

Lo que sí sé es que esta semana ha marcado un punto de no retorno: ya no se trata de trabajar más, sino de trabajar distinto. Sigo disfrutando de este oficio como el primer día y quiero seguir disfrutándolo dentro de 18 meses.

Y que mi equipo también lo disfrute.

¡Feliz Domingo!