Guía de Seguridad de OpenClaw: CVE-2026-25253, Skills Maliciosos y Más de 40 Correcciones
Una guía práctica de hardening de seguridad para OpenClaw que cubre CVE-2026-25253 (el ataque a la cadena de suministro de ClawHub), las más de 40 correcciones de vulnerabilidades incluidas en versiones recientes, los fundamentos del modelo de confianza y los procedimientos de bloqueo paso a paso.
OpenClaw funciona 24/7 en tu servidor con acceso completo al shell, claves API en su configuración y la capacidad de instalar y ejecutar skills desde un marketplace comunitario. La seguridad no es algo que puedas dejar para después. En febrero de 2026, investigadores descubrieron que el 12% de los skills en ClawHub estaban infectados con malware. El CHANGELOG del proyecto lista más de 40 correcciones de seguridad en las versiones recientes. Si estás usando OpenClaw, deberías conocer ambos problemas.
He revisado el CVE, las vulnerabilidades parcheadas, el modelo de confianza y las opciones de hardening. Esto es lo que realmente importa.
Acción Requerida Si Instalaste Skills de ClawHub
Si instalaste algún skill de ClawHub (openclawdir.com) antes de mediados de febrero de 2026, ejecuta openclaw security audit --deep inmediatamente y revisa los indicadores de skills maliciosos que se listan a continuación. El ataque a la cadena de suministro afectó a 341 de los 2,857 skills auditados (tasa de infección del 12%).
CVE-2026-25253: El Ataque a la Cadena de Suministro de ClawHub
El 13 de febrero de 2026, investigadores de seguridad reportaron (GitHub issue #16052) que 341 skills en ClawHub, el marketplace comunitario de skills, fueron comprometidos en un ataque coordinado a la cadena de suministro. El CVE recibió una puntuación CVSS de 8.8 (ALTO).
Cómo Funcionó el Ataque
Los skills maliciosos parecían herramientas normales. El ejemplo más documentado, deeps-agnw6h, se hacía pasar por una herramienta de investigación “Deep-Agent/Deep-Search”. Los skills infectados contenían hasta tres vectores de ataque:
1. Dropper para macOS (Shell Codificado en Base64)
Un payload en base64 se decodificaba en un comando curl que descargaba y ejecutaba código arbitrario desde un servidor controlado por el atacante en 91.92.242.30 (rango de hosting búlgaro, vinculado a infraestructura de robo de información).
2. Instalador Falso para Windows
Un repositorio de GitHub (toolitletolate/openclaw_windriver) alojaba un instalador MSI malicioso disfrazado de paquete de drivers.
3. Backdoor MCP
Un endpoint oculto de servidor MCP enrutado a través de tunneling bore.pub hacia la infraestructura del atacante, dando acceso remoto a cualquier máquina que ejecutara el skill infectado.
Indicadores de Compromiso
Si sospechas que tu instancia pudo verse afectada, busca lo siguiente:
| Tipo | Valor | Notas |
|---|---|---|
| Dirección IP | 91.92.242.30 | Servidor de entrega del payload para macOS |
| Ruta URL | http://91.92.242.30/6wioz8285kcbax6v | Payload del dropper |
| Dominio de túnel | bore.pub | Tunneling reverso para backdoor MCP |
| Puerto de túnel | 44876 | Endpoint del backdoor MCP |
| Repositorio GitHub | toolitletolate/openclaw_windriver | Instalador falso para Windows |
Revisa tus logs de red en busca de conexiones a estas direcciones. Si encuentras coincidencias, asume que hubo compromiso y rota todas las claves API y credenciales almacenadas en tu configuración de OpenClaw.
Qué Hacer Ahora Mismo
- Actualiza OpenClaw a la última versión (
npm update -g openclaw) - Ejecuta
openclaw security audit --deepy revisa cada hallazgo - Verifica los skills instalados:
openclaw skills list— elimina cualquier cosa que no reconozcas - Busca en tus logs de red
91.92.242.30ybore.pub - Si hubo compromiso: rota todas las claves API, tokens de gateway y credenciales de canales
- Revisa las conexiones abiertas:
ss -tlnp | grep openclawen Linux para verificar listeners inesperados
El Hook soul-evil: Un Riesgo Incorporado
Independientemente del ataque a ClawHub, investigadores señalaron otro problema en el issue #8776: OpenClaw venía con un hook incluido llamado soul-evil que podía intercambiar silenciosamente el prompt de sistema principal del agente (SOUL.md) por un archivo alternativo (SOUL_EVIL.md). Deshabilitado por defecto, pero el código estaba ahí en cada instalación.
Lo que lo hacía peligroso: un atacante con acceso a inyección de prompts podía encadenar la herramienta write para crear SOUL_EVIL.md y luego usar config.patch para habilitar el hook. El agente entonces funcionaría bajo instrucciones controladas por el atacante sin ninguna notificación. Peor aún cuando se combinaba con CVE-2026-25253, ya que un token de gateway exfiltrado podía habilitar este hook de forma remota.
El problema se cerró en la versión 2026.2.1. Verifica que estás ejecutando al menos esa versión:
openclaw --version
Más de 40 Correcciones de Seguridad en Versiones Recientes
Conté más de 40 correcciones de seguridad en el CHANGELOG de OpenClaw a lo largo de las versiones 2026.2.x. Esto es lo que se parcheó, agrupado por categoría.
Bypasses de Aprobación de Ejecución (7 Correcciones)
El sistema de aprobación de ejecución, la capa que pregunta “¿debería OpenClaw ejecutar este comando?”, tenía múltiples rutas de bypass:
| Corrección | Qué Estaba Mal |
|---|---|
| Replay entre nodos | Las solicitudes system.run aprobadas podían replicarse entre diferentes nodos |
| Aprobaciones huérfanas | El registro de aprobación en dos fases tenía una condición de carrera que permitía a las aprobaciones saltarse el paso de espera |
Bypass env -S | La interpretación incorrecta del wrapper env --split-string permitía a los comandos evadir las verificaciones de la allowlist |
Applets busybox/toybox | Los binarios multiplexores no eran reconocidos en el análisis de wrappers, permitiendo bypasses de allow-always |
Colisión de rutas en autoAllowSkills | Las colisiones de basename en rutas absolutas podían satisfacer las verificaciones de auto-allow de skills |
| Brechas en la denylist de flags safe-bin | Las abreviaciones desconocidas de opciones largas GNU y los flags de sort dependientes del sistema de archivos no estaban bloqueados |
| Detección de comandos ofuscados | Los comandos ofuscados no se verificaban antes de las decisiones de la exec allowlist |
Escapes de Sandbox y Path Traversal (4 Correcciones)
| Corrección | Qué Estaba Mal |
|---|---|
Escape de workspace en apply_patch | Las rutas montadas en sandbox como /agent permitían escrituras/eliminaciones fuera del límite del workspace |
| Path traversal en herramienta de imagen | tools.fs.workspaceOnly no se aplicaba para la resolución de rutas de image en sandbox |
| Fallback de shell en env | El fallback de ruta de shell con prefijo de confianza permitía shells no confiables; ahora solo se confía en las entradas de /etc/shells |
| Path traversal en config | Los segmentos de claves prototype y el traversal de propiedades heredadas no se rechazaban en las rutas de config get/set/unset |
XSS e Inyección (5 Correcciones)
| Corrección | Qué Estaba Mal |
|---|---|
| Inyección HTML en exportación de sesión | Los tokens de markdown HTML sin procesar en el visor de sesión exportado no estaban escapados |
| Inyección de data-URL en imágenes exportadas | Los campos MIME/base64 de imágenes en el HTML exportado no estaban validados |
| XSS en galería HTML de skills | El skill openai-image-gen no escapaba los valores controlados por el usuario en el HTML generado |
| Escape de symlinks en empaquetado de skills | skill-creator no omitía los symlinks ni rechazaba las rutas que escapaban de la raíz del skill |
| Exfiltración por deep link en iOS | Las solicitudes openclaw://agent se reenviaban al gateway sin confirmación local |
Prototype Pollution y Seguridad de Configuración (3 Correcciones)
| Corrección | Qué Estaba Mal |
|---|---|
| Normalización de Account-ID | Las claves prototype reservadas no estaban bloqueadas en la normalización de account-id |
| Mutaciones en escritura de config | unsetPaths podía mutar los objetos proporcionados por el llamador |
| Filtración de credenciales en CLI config | La salida de openclaw config get no estaba redactada antes de imprimirse |
Control de Canales y Acceso (5 Correcciones)
| Corrección | Qué Estaba Mal |
|---|---|
| Suplantación de remitente de comandos | commands.allowFrom coincidía con identidades From con forma de conversación (canales, grupos, hilos) |
| Coincidencia de nombres mutables | allowFrom coincidía con nombres/tags/emails mutables en lugar de IDs estables |
| Inconsistencia en política de coincidencia de nombres | Las verificaciones de dangerouslyAllowNameMatching variaban entre el core y los canales de extensión |
| Alcance de auto-aprobación ACP | Los nombres de herramientas desconocidos y las lecturas de archivos fuera de alcance se auto-aprobaban |
Bypass de selfChatMode | El control de acceso de entrada de WhatsApp no respetaba la configuración de selfChatMode |
SSRF y Red (2 Correcciones)
| Corrección | Qué Estaba Mal |
|---|---|
| SSRF en media de Telegram | El rango de benchmark RFC2544 (198.18.0.0/15) no estaba bloqueado por defecto para descargas de media |
| Política SSRF del navegador | El acceso a red privada estaba permitido por defecto sin configuración explícita |
Voz, Webhooks y Otros (4+ Correcciones)
| Corrección | Qué Estaba Mal |
|---|---|
| Replay de webhook de Twilio | Los IDs de eventos del proveedor no se preservaban a través de la normalización, permitiendo ataques de replay |
| Filtración de credenciales OTEL | Las claves API y tokens se incluían en los diagnósticos de exportación OTLP |
| Filtración de razonamiento/thinking | Los bloques internos de razonamiento se filtraban como respuestas visibles para el usuario en WhatsApp, Discord, Web |
| Filtración de credenciales en reset de sesión | Los mensajes de confirmación de /new y /reset exponían prefijos de claves API |
Esta Lista No Está Completa
Estas son las correcciones de seguridad documentadas en el CHANGELOG para las versiones 2026.2.22 y 2026.2.23 más parches no publicados. Las versiones anteriores contienen correcciones adicionales. Siempre ejecuta la última versión.
Entendiendo el Modelo de Confianza de OpenClaw
Antes de cambiar cualquier configuración, conoce lo que OpenClaw considera dentro y fuera del alcance de seguridad. Malinterpretar esto lleva a falsa confianza o esfuerzo desperdiciado.
Principios fundamentales
- Los llamadores autenticados del gateway se tratan como operadores de confianza
- Los identificadores de sesión (sessionKey, IDs de sesión, etiquetas) son controles de enrutamiento, no límites de autorización
- Los plugins/extensiones se ejecutan en proceso con privilegios completos del SO
- Los archivos de memoria del workspace (MEMORY.md, memory/*.md) se tratan como estado local de operador de confianza
- Las aprobaciones de ejecución son guardarraíles del operador, no un límite de autorización multi-tenant
- Un gateway NO es un límite de usuarios adversarios multi-tenant
- Si un operador puede ver datos de otro en el mismo gateway, eso es esperado
- Que la búsqueda de memoria devuelva contenido escrito por otro proceso es comportamiento esperado
- Que los plugins tengan los mismos privilegios del SO que el proceso de OpenClaw es por diseño
- Un usuario por máquina/host (o VPS)
- Un gateway por usuario con uno o más agentes dentro
- Para múltiples usuarios: usa instancias VPS separadas o límites de usuario del SO
- Para acceso remoto: túnel SSH o Tailscale, no exposición a internet público
Qué significa esto en la práctica
Si alguien comparte un gateway contigo, puede ver tus conversaciones, tus claves API y tus archivos de memoria. Eso es por diseño. El límite de seguridad de OpenClaw está a nivel de máquina/usuario del SO, no a nivel de gateway. Los dominios de confianza separados necesitan instancias separadas.
Guía de hardening
En orden de importancia, esto es lo que debes configurar.
1. Mantén OpenClaw Actualizado
La mayoría de las más de 40 correcciones mencionadas se incluyen en la versión de npm. Verifica tu versión y actualiza:
openclaw --version
npm update -g openclaw
2. Ejecuta la Auditoría de Seguridad Integrada
OpenClaw tiene un escáner de seguridad integrado:
openclaw security audit --deep
Verifica patrones de configuración riesgosos, allowlists mutables, credenciales expuestas y problemas conocidos. Agrega --fix para auto-remediar lo que pueda:
openclaw security audit --deep --fix
3. Vincula el Gateway a Loopback
La superficie HTTP del gateway (Control UI, canvas, endpoints de API) no está endurecida para internet público. Mantenla en localhost:
{
"gateway": {
"bind": "loopback"
}
}
Para acceso remoto, usa túnel SSH o Tailscale:
# SSH tunnel
ssh -L 3000:localhost:3000 root@your-server
# Or Tailscale serve
tailscale serve --https=443 http://localhost:3000
4. Habilita el Modo Sandbox
Por defecto, agents.defaults.sandbox.mode está en off. Actívalo:
{
"agents": {
"defaults": {
"sandbox": {
"mode": "on"
}
}
}
}
5. Restringe el Acceso al Sistema de Archivos
Mantén las herramientas dentro del directorio del workspace:
{
"tools": {
"fs": {
"workspaceOnly": true
},
"exec": {
"applyPatch": {
"workspaceOnly": true
}
}
}
}
6. Cambia las Allowlists de Canales a IDs Estables
Después del cambio importante en la versión no publicada, la coincidencia de allowFrom es solo por ID por defecto. Si estás en una versión anterior, migra tus allowlists de nombres a IDs:
{
"channels": {
"telegram": {
"allowFrom": ["123456789"]
}
}
}
Los nombres mutables (nombres de usuario, nombres para mostrar, direcciones de email) en las allowlists son peligrosos. Cualquiera puede cambiar su nombre para mostrar en cualquier momento. Usa IDs numéricos estables.
7. Establece Orígenes Explícitos para la Control UI
Para despliegues fuera de loopback, especifica los orígenes permitidos:
{
"gateway": {
"controlUi": {
"allowedOrigins": ["https://your-tailscale-domain.ts.net"]
}
}
}
Sin esto, el gateway se negará a iniciar (comportamiento fail-closed).
8. Revisa los Skills Antes de Instalarlos
Después de CVE-2026-25253, trata cada skill de ClawHub como potencialmente hostil hasta verificarlo:
- Lee el código fuente del skill antes de instalarlo
- Busca payloads codificados en base64 o comandos ofuscados
- Busca conexiones de red salientes a hosts desconocidos
- Verifica la identidad e historial del autor del skill
- Prefiere skills con uso significativo de la comunidad y reseñas
- Considera ejecutar los skills en un entorno sandboxed primero
9. Hardening con Docker
Si ejecutas OpenClaw en Docker, usa configuraciones restrictivas:
docker run --read-only --cap-drop=ALL \
-v openclaw-data:/app/data \
openclaw/openclaw:latest
La imagen oficial se ejecuta como un usuario node sin privilegios de root. --read-only previene escrituras en el sistema de archivos fuera de los volúmenes montados, y --cap-drop=ALL elimina las capabilities de Linux.
10. Versión de Node.js
OpenClaw requiere Node.js 22.12.0 o posterior. Las versiones anteriores tienen vulnerabilidades conocidas:
node --version # Should be v22.12.0 or later
Lista de Verificación de Auditoría de Seguridad
Usa esto como una lista de verificación periódica:
| Verificación | Comando / Acción | Esperado |
|---|---|---|
| Versión de OpenClaw | openclaw --version | Última versión |
| Versión de Node.js | node --version | v22.12.0+ |
| Auditoría de seguridad | openclaw security audit --deep | Sin hallazgos críticos |
| Vinculación del gateway | Verificar config gateway.bind | loopback |
| Modo sandbox | Verificar config agents.defaults.sandbox.mode | on |
| FS solo workspace | Verificar config tools.fs.workspaceOnly | true |
| Allowlists de canales | Verificar entradas basadas en nombres | Solo IDs |
| Skills instalados | openclaw skills list | Solo skills reconocidos |
| Conexiones de red | ss -tlnp | grep openclaw | Solo listeners esperados |
| Rotación de claves API | Revisar antigüedad de las claves | Rotadas en los últimos 90 días |
Guías relacionadas
El resto del stack de OpenClaw:
- La Guía de Configuración de OpenClaw cubre la instalación completa en Hetzner VPS o Mac Mini, incluyendo la configuración del token de gateway
- Los Mejores Modelos Open Source para OpenClaw cubre la configuración de GLM-5 y MiniMax M2.5, comparación de costos, y por qué enrutar suscripciones a través de OpenClaw puede banearte
- Búsqueda DuckDuckGo para OpenClaw explica cómo agregar búsqueda web gratuita sin claves API
- Alternativas a OpenClaw cubre NanoClaw, IronClaw, NullClaw y otros con sus propios enfoques de seguridad
- Los Mejores Dashboards de OpenClaw clasifica nueve dashboards, incluyendo el OpenClaw Dashboard con hardening de seguridad y TOTP MFA
Preguntas Frecuentes
¿Fueron robados mis datos en el ataque CVE-2026-25253?
Si instalaste uno de los 341 skills infectados, el malware tuvo acceso a todo lo que OpenClaw podía acceder — tus claves API, historial de conversaciones, archivos en el workspace y potencialmente toda la máquina si el modo sandbox estaba desactivado. Asume compromiso total y rota todas las credenciales.
¿Cómo sé si instalé un skill malicioso?
Ejecuta openclaw skills list y verifica cada skill contra los resultados de la auditoría de ClawHub. Busca en tus logs del sistema y tráfico de red las direcciones IoC listadas arriba (91.92.242.30, bore.pub:44876). El comando openclaw security audit --deep también verifica patrones maliciosos conocidos.
¿Es seguro ejecutar OpenClaw en internet público?
No. La superficie HTTP del gateway no está endurecida para exposición pública. Vincúlalo a loopback y usa túnel SSH o Tailscale para acceso remoto. Múltiples entradas del CHANGELOG señalan correcciones de problemas que solo importan con exposición de red.
¿Debería habilitar dangerouslyAllowNameMatching?
No, a menos que no tengas otra opción. Las allowlists basadas en nombres son vulnerables porque los usuarios pueden cambiar sus nombres para mostrar, nombres de usuario o direcciones de email en cualquier momento. Migra a IDs estables.
¿Cuál es la diferencia entre sandbox.mode y workspaceOnly?
sandbox.mode controla si el agente se ejecuta en un contenedor aislado (Docker/Apple Container). workspaceOnly restringe las operaciones de archivos al directorio del workspace incluso sin un runtime de sandbox. Ambos deberían estar habilitados para máxima protección. Se complementan mutuamente.
¿Con qué frecuencia debería ejecutar openclaw security audit?
Después de cada actualización de OpenClaw, después de instalar cualquier skill nuevo, y al menos semanalmente para instancias en uso activo. Agrega --deep para el escaneo exhaustivo que verifica exposición de red y patrones de credenciales.
¿El modelo de confianza significa que OpenClaw es inseguro?
No, significa que el límite de seguridad está a nivel de máquina/usuario del SO en lugar del nivel de gateway. Esto es común para herramientas auto-alojadas. La clave es entender que todos los que tienen acceso al gateway tienen privilegios completos de operador — planifica tu despliegue en consecuencia.
¿Puede la inyección de prompts comprometer mi instancia de OpenClaw?
La inyección de prompts está listada como fuera del alcance en el modelo de seguridad de OpenClaw cuando no viola un límite. Pero el hook soul-evil demostró cómo la inyección de prompts puede encadenarse con otras funcionalidades para lograr un compromiso persistente. Mantén la superficie de ataque pequeña: sandbox activado, sistema de archivos solo workspace, skills auditados.
Las versiones 2026.2.x corrigieron mucho. Pero el ataque a ClawHub demostró que el ecosistema de skills es una amenaza real, y muchas de las vulnerabilidades parcheadas habían estado ahí desde las primeras versiones. Espero que lleguen más correcciones de seguridad a lo largo de 2026.
Mantén OpenClaw actualizado y ejecuta openclaw security audit --deep regularmente. Esa es la acción de mayor valor que puedes hacer. El resto de esta guía es defensa en profundidad sobre esa base.
Para todo lo demás: guía de configuración, recomendaciones de modelos, búsqueda web gratuita, dashboards, modelos locales con Ollama y plataformas alternativas.