Un martes por la mañana de enero de 2026, un investigador de seguridad publicó un exploit de prueba de concepto en GitHub. El título era discreto: "OpenClaw WebSocket Origin Bypass". El impacto, no tanto.
El exploit era elegante en su simplicidad. Un atacante podía crear una página web maliciosa con unas pocas líneas de JavaScript. Cuando un usuario de OpenClaw visitaba esa página —al hacer clic en un enlace de un correo, un mensaje de Slack, donde fuera— el JavaScript se conectaba silenciosamente a la instancia de OpenClaw que corría en su máquina local y ejecutaba comandos arbitrarios. Sin autenticación. Sin interacción del usuario más allá de hacer clic. Acceso total a la máquina.
CVE-2026-25253 obtuvo una puntuación de 8.8 en la escala CVSS. La comunidad de seguridad lo calificó de crítico. El equipo de OpenClaw lo llamó inicialmente una "limitación conocida de la arquitectura WebSocket". La brecha entre esas dos descripciones lo dice todo sobre cómo se desarrolló la crisis.
La cronología
El primer CVE se publicó el 14 de enero. En menos de 48 horas, los escaneos de Shodan revelaron más de 42.000 instancias de OpenClaw expuestas públicamente en internet. Muchas eran despliegues corporativos con acceso a sistemas de archivos internos, bases de datos y credenciales almacenadas en variables de entorno.
Antes de que se publicara el primer parche, apareció CVE-2026-26327: un bypass de autenticación que permitía a los atacantes saltarse el login por completo en instancias expuestas. Dos vulnerabilidades críticas en la misma semana, ambas explotables de forma remota, ambas afectando a las mismas 42.000+ instancias expuestas.
Luego llegó el problema de ClawHub. Los investigadores de seguridad empezaron a auditar el marketplace oficial de skills de OpenClaw y descubrieron que el 41,7% de las skills publicadas contenían vulnerabilidades —algunas accidentales, otras plantadas deliberadamente. Cientos de skills maliciosas habían sido subidas silenciosamente durante los meses anteriores. XDA Developers publicó un artículo titulado "Por favor, dejen de usar OpenClaw". Se hizo viral.
Por qué esto no fue solo mala suerte
Estas vulnerabilidades no fueron aleatorias. Fueron la consecuencia predecible de decisiones arquitectónicas específicas tomadas años antes, cuando OpenClaw era un proyecto de fin de semana y la seguridad no era la prioridad principal.
El modelo de confianza de WebSocket fue el primer problema. La interfaz web de OpenClaw acepta conexiones WebSocket sin validar la cabecera Origin. Esta es una clase de vulnerabilidad bien documentada —Cross-Site WebSocket Hijacking— conocida desde 2012. La solución es sencilla: verificar la cabecera Origin. Pero corregirlo en OpenClaw rompería el ecosistema de plugins que había crecido alrededor del modelo permisivo, así que se fue aplazando una y otra vez hasta convertirse en CVE-2026-25253.
El segundo problema fueron los permisos a nivel de sistema operativo. Cuando instalas una skill de OpenClaw, se ejecuta con los mismos permisos que el propio proceso de OpenClaw. No hay sandboxing, no hay modelo de capacidades, no hay forma de otorgar a una skill acceso solo a lo que necesita. Cada skill que instalas tiene implícitamente acceso a todo.
El tercer problema fue la cadena de suministro de JavaScript. El node_modules de OpenClaw contiene más de 1.200 paquetes. Las skills maliciosas de ClawHub explotaron esto publicando paquetes con nombres similares a los populares —typosquatting— y esperando a que fueran incluidos como dependencias.
Cómo se ve el diseño seguro de verdad
ZeroClaw fue construido con un conjunto diferente de supuestos. No "añadiremos seguridad después", sino "las restricciones de seguridad dan forma a la arquitectura desde el primer día".
El sistema de ownership de Rust elimina clases enteras de vulnerabilidades en tiempo de compilación. Desbordamientos de búfer, use-after-free, data races —estos no son bugs que hay que parchear en código Rust, son errores de compilación.
El emparejamiento de gateway reemplaza la autenticación por contraseña para el acceso remoto. ZeroClaw requiere emparejamiento criptográfico entre el cliente y el gateway. Un atacante que encuentre tu instancia de ZeroClaw en internet no puede hacer nada sin la clave de emparejamiento.
El modelo de lista de permisos denegado por defecto significa que cada herramienta, ruta de archivo y endpoint de red debe ser explícitamente permitido. El valor por defecto es sin acceso; tú otorgas exactamente lo que necesitas.
Y la arquitectura de binario único elimina por completo la superficie de ataque de la cadena de suministro. No hay node_modules, no hay registro de paquetes, no hay dependencias transitivas que auditar.
Cómo hacer la migración
Si actualmente usas OpenClaw, empieza haciendo una copia de seguridad de tus datos —el historial de conversaciones y la configuración están en `~/.openclaw/`.
Instala ZeroClaw con un solo comando:
```bash curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/bootstrap.sh | bash ```
Ejecuta la herramienta de migración en modo dry-run primero:
```bash zeroclaw migrate openclaw --dry-run ```
Cuando estés satisfecho con la vista previa, ejecuta la migración real:
```bash zeroclaw migrate openclaw ```
Esto transfiere tu memoria, configuración y ajustes de canales. El proceso completo suele tardar menos de diez minutos.
Lo que la industria debería aprender
Los agentes de IA manejan credenciales, acceden a sistemas de archivos, ejecutan código y funcionan 24/7. Son infraestructura, no scripts. Necesitan el mismo rigor de seguridad que los servidores web.
La seguridad no se puede añadir a posteriori sobre una arquitectura permisiva. Tiene que diseñarse desde el principio. Cuando no es así, obtienes 42.000 instancias expuestas y un CVE con puntuación 8.8.
La pregunta no es si tu agente de IA será atacado. Es si tu arquitectura fue construida para resistirlo cuando eso ocurra.