El día que un archivo de texto con sobrepeso mandó el internet a terapia intensiva

¿Cómo un cambio de permisos en una base de datos apagó medio internet? Analizamos el colapso de Cloudflare de noviembre 2025 y el archivo de texto que nos dejó sin ChatGPT.

Share
El día que un archivo de texto con sobrepeso mandó el internet a terapia intensiva

Aquí estoy, en mi oficina del Instituto en la UNAM. De fondo tengo el arrullo ensordecedor de nuestros clústeres de servidores "artesanales", unas bestias ensambladas a mano que suenan como motores diésel de los años setenta a punto de desbielarse. Mientras observo las luces parpadeantes de los switches, no puedo evitar recordar aquel fatídico 18 de noviembre de 2025. Eran pasadas las seis de la mañana, el café de la máquina sabía a tristeza destilada, y mi único deseo era pedirle a ChatGPT que me redactara la base del reporte anual. Pero en lugar de esa amigable inteligencia artificial, la pantalla me escupió un frío y desalmado error 500.

Mi instinto de supervivencia tecnológica me hizo abrir X (¡Twitter Forever!) para confirmar si Skynet por fin se había revelado o si solo me habían cortado el internet por navegar sitios de dudosa procedencia. Nada. Spotify también había enmudecido. Fue ese micro-infarto digital que todos conocemos demasiado bien: ese vacío existencial donde te das cuenta de que la capa invisible que sostiene nuestra vida moderna acaba de colapsar. No era un ciberataque de hackers encapuchados en un sótano. Era algo mucho más mundano, estúpido y aterrador: el cadenero más grande de la red se había tropezado con las agujetas de sus propios zapatos.

Mapa del Caos

El Berrinche del Bouncer Digital

Un SPOF (Single Point of Failure) es un componente de un sistema cuya falla provoca el colapso de toda la arquitectura, un riesgo sistémico que se amplifica cuando entidades como Cloudflare concentran el veinte por ciento del tráfico web global.

Imagina que el internet es la discoteca más exclusiva y masiva del planeta. Cloudflare es ese cadenero gigante y musculoso en la puerta, con una lista de invitados kilométrica y una memoria fotográfica para detectar a los alborotadores. Confiamos tanto en este sujeto que le dimos las llaves de casi todas las puertas, la gestión del guardarropa y hasta el control de la música. Cuando este guardián colapsa, no importa si tu fiesta adentro está perfectamente organizada; nadie entra, nadie sale y la música se apaga.

El 18 de noviembre de 2025 nos demostró la tremenda fragilidad de haber delegado nuestra infraestructura a unos cuantos proveedores. El problema de centralizar la seguridad y el rendimiento web es que, cuando estornudan, medio planeta termina en terapia intensiva. Nos hemos vuelto adictos a la conveniencia de la nube y de las redes de distribución de contenido, olvidando que detrás de la magia del software, hay máquinas de silicio y cobre que operan bajo reglas estrictas. Si rompes una regla, el sistema no negocia, simplemente se detiene.

El Efecto Dominó de los Permisos

Un error de configuración en una base de datos analítica provocó la duplicación masiva de entradas en un Feature File crítico para el sistema de mitigación de bots, excediendo los límites operativos previstos.

Todo el desastre comenzó con una tarea de mantenimiento tan rutinaria que probablemente el ingeniero a cargo estaba pensando en qué iba a pedir de desayuno. Se realizó un cambio de permisos en una base de datos ClickHouse. Para entender la magnitud de la tragedia, imagina que tienes una biblioteca perfectamente organizada. De repente, alguien cambia la cerradura de la sección de "índices". El bibliotecario, confundido y tratando de hacer su trabajo, entra en pánico y empieza a fotocopiar la misma página del índice una y otra vez hasta llenar el edificio completo con papel inútil.

Eso fue exactamente lo que pasó con el archivo de características del sistema de Bot Management de Cloudflare. Este archivo, que normalmente contiene unas sesenta reglas elegantes y bien portadas para detectar tráfico malicioso, comenzó a recibir datos duplicados sin control tras el cambio de permisos en la base de datos. El archivo engordó a un ritmo alarmante, superando las doscientas entradas. Pero el verdadero drama no fue que el archivo engordara, sino que el sistema automatizado de Cloudflare, confiando ciegamente en sus propios procesos, empaquetó este archivo obeso y lo distribuyó a la velocidad de la luz a todos y cada uno de los servidores que componen su red global.

"We know we let you down today." — Matthew Prince, CEO de Cloudflare, admitiendo la derrota con una honestidad brutal.

La Soberbia del Código y el Pánico de Rust

La función Unwrap() en lenguajes seguros para la memoria obliga al programa a abortar su ejecución (panic) si encuentra un valor nulo o un error no manejado, priorizando la detención abrupta sobre un comportamiento indefinido.

Aquí es donde la comedia se vuelve tragedia técnica. Cloudflare tiene una arquitectura robusta, programada en gran parte en Rust, un lenguaje amado por los desarrolladores porque te obliga a ser seguro con la memoria. Rust es como un padre sobreprotector que no te deja salir a jugar si no llevas rodilleras, casco y un chaleco reflectante. Dentro de este código, había una pequeña instrucción, un límite de memoria rígidamente establecido para procesar el archivo de reglas.

Los programadores, confiando en que el archivo jamás superaría cierto tamaño, utilizaron una directiva que básicamente dice: "Abre esta caja de datos y úsala. Si la caja rompe las reglas, entra en pánico y mátate". Y así lo hizo. Cuando el archivo gordo llegó a los servidores proxy centrales, el código miró el tamaño, se dio cuenta de que violaba la memoria asignada, y en lugar de ignorar el archivo o emitir una alerta pasiva, el programa entero entró en un paro cardíaco digital. Cientos de miles de procesos se detuvieron en seco simultáneamente en todo el mundo. Las peticiones de millones de usuarios chocaron contra una pared de ladrillos, generando el diluvio de errores 500 que paralizó nuestra mañana.

Zona Nerd 🤓

Vamos a bajar a las trincheras del metal desnudo y la arquitectura de sistemas distribuidos a hiperescala. El colapso del 18 de noviembre no fue un simple fallo de aplicación, fue una cascada catastrófica en el plano de datos (Data Plane). El ecosistema de Cloudflare opera bajo un modelo de Anycast gigantesco (su AS13335). Cuando el motor de Bot Management generó el archivo de configuración corrupto, la canalización de Integración/Despliegue Continuo (CI/CD) carecía de lo que en Site Reliability Engineering (SRE) llamamos "límites de comportamiento" o validación semántica del artefacto antes de su propagación en el edge.

El demonio proxy que maneja la terminación TLS y el enrutamiento HTTP en los nodos de borde está escrito en Rust. La rigidez de las estructuras de memoria en Rust garantiza la ausencia de desbordamientos de búfer (buffer overflows), pero el uso no defensivo de unwrap() o expect() en rutas de ejecución críticas transformó una falla de validación de entrada en un Panic irrecuperable a nivel de hilo (thread). Al propagarse el estado corrupto globalmente y en milisegundos a través de Quicksilver (su sistema de distribución KV distribuido), cada nodo proxy en la topología Anycast intentó parsear el archivo simultáneamente, encontrando el límite de memoria estático (hardcoded threshold) y suicidándose en masa. Esto dejó a las interfaces de red sin procesos de usuario (user-space daemons) capaces de despachar los sockets TCP/UDP, resultando en caídas de sesión masivas y timeouts en plataformas como AWS, Azure y Google Cloud que intentaban balancear cargas hacia el abismo.

TL;DR

El apocalipsis digital del 18 de noviembre de 2025 no llegó montado en caballos de fuego, sino empacado en un archivo de texto duplicado. Un simple cambio de permisos en una base de datos desencadenó una indigestión masiva en los servidores de Cloudflare, provocando que su código entrara en pánico y apagara el 20% del internet. Fue un recordatorio brutal de que nuestra economía global depende de un puñado de "plomeros" digitales y de que la automatización a escala planetaria es un arma de doble filo. Nos demostró que la resiliencia no se trata de no fallar, sino de saber fracasar en pequeñito y con gracia.

Y tú, después de leer cómo un solo error de validación apagó ChatGPT y arruinó la mañana de millones... ¿ya revisaste si tus propios sistemas tienen un plan B, o sigues saltando del avión esperando que el paracaídas se invente en la caída?

Dudas Existenciales (FAQ)

¿Fue culpa de unos hackers con sudaderas oscuras en un sótano?
Para decepción de Hollywood, no. No hubo cibercriminales, ni ataques de denegación de servicio (DDoS) patrocinados por un estado-nación. Fue un error humano interno, un fallo latente en el código que llevaba tiempo escondido esperando el escenario perfecto, desencadenado por un simple ajuste en una base de datos.

Si fue solo un archivo, ¿por qué tardaron horas en arreglarlo?
Porque cuando construyes una cerradura inteligente impenetrable y se traba, tú tampoco puedes entrar a tu propia casa. El fallo derribó los propios paneles de control y sistemas de autenticación interna de los ingenieros de Cloudflare. Tuvieron que recurrir a mecanismos de acceso "rompe el cristal" (break-glass) para poder detener la propagación del archivo corrupto, restaurar una versión limpia y reiniciar manualmente los sistemas centrales.

¿Las empresas aprendieron la lección o volveremos a quedarnos sin internet mañana?
Aprendieron a la mala. Cloudflare lanzó una iniciativa de emergencia llamada "Code Orange: Fail Small". Están rediseñando sus tuberías de despliegue para que, si algo se rompe, solo afecte a un porcentaje minúsculo de usuarios y no al planeta entero. Sin embargo, la centralización del internet sigue ahí. Hasta que no diversifiquemos nuestra dependencia, seguiremos a un comando mal escrito de regresar a la edad de piedra digital.

Glosario 📖

Cloudflare: El enorme guardia de seguridad en la entrada de tu fraccionamiento. Revisa quién entra, bloquea a los ladrones y se asegura de que los paquetes de Amazon lleguen rápido. Si el guardia se desmaya, la pluma de acceso se queda trabada abajo y nadie puede entrar a sus casas.

SPOF (Single Point of Failure): El talón de Aquiles de la tecnología. Imagina un candelabro gigante y carísimo sostenido del techo por un solo y diminuto tornillo de plástico. Si ese tornillo se rompe, todo el espectáculo de cristal termina destrozado en el suelo.

ClickHouse: Un archivero hiperactivo y súper eficiente donde guardas millones de recibos de compra. Puedes pedirle que te busque todos los recibos del mes pasado donde compraste café, y te los entregará en fracciones de segundo.

Feature File (Archivo de Características): Es como un manual de instrucciones rápido o una lista de "se busca" que el guardia de seguridad tiene en la mano. Le dice exactamente qué caras son sospechosas hoy para no dejarlas pasar al club.

Unwrap(): En programación, es la versión digital de saltar a una alberca con los ojos vendados asumiendo que tiene agua. Le dices al código: "Abre esta caja y saca lo que hay dentro". Si la caja resulta estar vacía, el programa entra en un pánico total y se detiene en seco porque no le diste instrucciones sobre qué hacer frente a la nada.

Anycast: Imagina que llamas por teléfono para pedir una pizza a una cadena nacional. En lugar de que te conteste un centro de atención al otro lado del país, el sistema telefónico es tan inteligente que automáticamente hace sonar el teléfono de la sucursal que está a dos cuadras de tu casa.