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.

Guía de Seguridad de OpenClaw: CVE-2026-25253, Skills Maliciosos y Más de 40 Correcciones

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:

TipoValorNotas
Dirección IP91.92.242.30Servidor de entrega del payload para macOS
Ruta URLhttp://91.92.242.30/6wioz8285kcbax6vPayload del dropper
Dominio de túnelbore.pubTunneling reverso para backdoor MCP
Puerto de túnel44876Endpoint del backdoor MCP
Repositorio GitHubtoolitletolate/openclaw_windriverInstalador 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 --deep y 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.30 y bore.pub
  • Si hubo compromiso: rota todas las claves API, tokens de gateway y credenciales de canales
  • Revisa las conexiones abiertas: ss -tlnp | grep openclaw en 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ónQué Estaba Mal
Replay entre nodosLas solicitudes system.run aprobadas podían replicarse entre diferentes nodos
Aprobaciones huérfanasEl 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 -SLa interpretación incorrecta del wrapper env --split-string permitía a los comandos evadir las verificaciones de la allowlist
Applets busybox/toyboxLos binarios multiplexores no eran reconocidos en el análisis de wrappers, permitiendo bypasses de allow-always
Colisión de rutas en autoAllowSkillsLas colisiones de basename en rutas absolutas podían satisfacer las verificaciones de auto-allow de skills
Brechas en la denylist de flags safe-binLas abreviaciones desconocidas de opciones largas GNU y los flags de sort dependientes del sistema de archivos no estaban bloqueados
Detección de comandos ofuscadosLos comandos ofuscados no se verificaban antes de las decisiones de la exec allowlist

Escapes de Sandbox y Path Traversal (4 Correcciones)

CorrecciónQué Estaba Mal
Escape de workspace en apply_patchLas rutas montadas en sandbox como /agent permitían escrituras/eliminaciones fuera del límite del workspace
Path traversal en herramienta de imagentools.fs.workspaceOnly no se aplicaba para la resolución de rutas de image en sandbox
Fallback de shell en envEl 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 configLos 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ónQué Estaba Mal
Inyección HTML en exportación de sesiónLos tokens de markdown HTML sin procesar en el visor de sesión exportado no estaban escapados
Inyección de data-URL en imágenes exportadasLos campos MIME/base64 de imágenes en el HTML exportado no estaban validados
XSS en galería HTML de skillsEl skill openai-image-gen no escapaba los valores controlados por el usuario en el HTML generado
Escape de symlinks en empaquetado de skillsskill-creator no omitía los symlinks ni rechazaba las rutas que escapaban de la raíz del skill
Exfiltración por deep link en iOSLas solicitudes openclaw://agent se reenviaban al gateway sin confirmación local

Prototype Pollution y Seguridad de Configuración (3 Correcciones)

CorrecciónQué Estaba Mal
Normalización de Account-IDLas claves prototype reservadas no estaban bloqueadas en la normalización de account-id
Mutaciones en escritura de configunsetPaths podía mutar los objetos proporcionados por el llamador
Filtración de credenciales en CLI configLa salida de openclaw config get no estaba redactada antes de imprimirse

Control de Canales y Acceso (5 Correcciones)

CorrecciónQué Estaba Mal
Suplantación de remitente de comandoscommands.allowFrom coincidía con identidades From con forma de conversación (canales, grupos, hilos)
Coincidencia de nombres mutablesallowFrom coincidía con nombres/tags/emails mutables en lugar de IDs estables
Inconsistencia en política de coincidencia de nombresLas verificaciones de dangerouslyAllowNameMatching variaban entre el core y los canales de extensión
Alcance de auto-aprobación ACPLos nombres de herramientas desconocidos y las lecturas de archivos fuera de alcance se auto-aprobaban
Bypass de selfChatModeEl control de acceso de entrada de WhatsApp no respetaba la configuración de selfChatMode

SSRF y Red (2 Correcciones)

CorrecciónQué Estaba Mal
SSRF en media de TelegramEl rango de benchmark RFC2544 (198.18.0.0/15) no estaba bloqueado por defecto para descargas de media
Política SSRF del navegadorEl acceso a red privada estaba permitido por defecto sin configuración explícita

Voz, Webhooks y Otros (4+ Correcciones)

CorrecciónQué Estaba Mal
Replay de webhook de TwilioLos IDs de eventos del proveedor no se preservaban a través de la normalización, permitiendo ataques de replay
Filtración de credenciales OTELLas claves API y tokens se incluían en los diagnósticos de exportación OTLP
Filtración de razonamiento/thinkingLos bloques internos de razonamiento se filtraban como respuestas visibles para el usuario en WhatsApp, Discord, Web
Filtración de credenciales en reset de sesiónLos 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ónComando / AcciónEsperado
Versión de OpenClawopenclaw --versionÚltima versión
Versión de Node.jsnode --versionv22.12.0+
Auditoría de seguridadopenclaw security audit --deepSin hallazgos críticos
Vinculación del gatewayVerificar config gateway.bindloopback
Modo sandboxVerificar config agents.defaults.sandbox.modeon
FS solo workspaceVerificar config tools.fs.workspaceOnlytrue
Allowlists de canalesVerificar entradas basadas en nombresSolo IDs
Skills instaladosopenclaw skills listSolo skills reconocidos
Conexiones de redss -tlnp | grep openclawSolo listeners esperados
Rotación de claves APIRevisar antigüedad de las clavesRotadas en los últimos 90 días

Guías relacionadas

El resto del stack de OpenClaw:


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.