SQL Copilot vs. MaxKB: dos fallas críticas, el mismo error de diseño (guardrails que no son permisos)

By Carlos Montiel | Especialista en IA Empresarial
Read in English →
Publicado: 2026-10-07 | Por: Carlos Montiel | Lectura: ~6 minutos

Dos productos distintos, dos proveedores distintos y el mismo error: confiar en que un filtro de texto o un wrapper de sandbox impida que un agente haga lo que no debe. Comparar CVE-2026-65669 y CVE-2026-77521 muestra por qué un guardrail no es un permiso.

Los dos casos en una tabla mental

SQL Copilot (SSMS) MaxKB CVE CVE-2026-65669 CVE-2026-77521 Severidad CVSS 9.6 (crítica) CVSS 10.0 (crítica) Restricción "Modo solo lectura" Sandbox de shell (wrapper gosu) Cómo se rompe Regex/blocklist esquivable Wrapper solo cubre el 1er comando Entrada hostil Propiedades de la BD, datos Contenido web indexado en la KB Corrección Publicada 8 sep 2026 (CVE) Versión 2.10.5-lts (6 ago 2026)

Caso 1: SQL Copilot y el “solo lectura” que era una regex

En SQL Server Management Studio, la función SQL Copilot imponía el modo de solo lectura con un clasificador basado en expresiones regulares (clase LocalSqlExecutionAccessChecker, según el análisis del investigador) y no con permisos reales de base de datos. Un patrón como DECLARE @p sysname='sp_executesql'; EXEC @p esquivaba la lista de bloqueo y permitía ejecutar T-SQL arbitrario, incluidas operaciones de escritura y borrado.

El análisis describe además dos agravantes: la exfiltración de datos por rutas SMB mediante procedimientos como xp_dirtree, y una ruta de escalada de privilegios en la que un propietario de base de datos con pocos privilegios podía plantar instrucciones en propiedades extendidas (archivos tipo AGENTS.md o CONSTITUTION.md) que Copilot incorpora a su contexto; cuando un usuario con más privilegios usaba Copilot, este ejecutaba las órdenes del atacante con esos privilegios más altos.

Caso 2: MaxKB y el sandbox que solo protegía el primer comando

MaxKB, un asistente de IA empresarial de código abierto, aplicaba un wrapper gosu como sandbox para ejecutar comandos de shell. En las versiones hasta 2.10.4-lts, el wrapper solo se aplicaba al primer comando de la cadena: con whoami; id, el primero quedaba dentro del sandbox y el segundo corría sin restricción, como root dentro del contenedor oficial.

El escenario de ataque descrito por Lasso Security: el atacante publica contenido web con instrucciones; la víctima crea un agente MaxKB con una base de conocimiento que indexa ese contenido; al consultar, el agente recupera el texto, lo trata como instrucciones y ejecuta los comandos. Además, la descripción oficial de la CVE indica que la herramienta de ejecución de shell no estaba excluida de las herramientas del agente ni requería aprobación humana. Con CVSS 10, en despliegues multiinquilino implica acceso a secretos y credenciales entre inquilinos. La corrección es actualizar a 2.10.5-lts o posterior (publicada el 6 de agosto de 2026) y mantener el sandbox activo en producción.

Qué tienen en común

Regla de diseño: el modo solo lectura debe ser una propiedad de la cuenta con la que se conecta el agente, no una promesa del prompt ni de un filtro. Lo mismo vale para el sandbox: debe encerrar el proceso entero, no el primer comando.

Qué significa para una empresa que despliega agentes

Checklist:

¿Quieres una revisión de los permisos y el aislamiento de tus agentes? Escríbenos a info@guatemalia.com.

Carlos Montiel
Arquitecto de Soluciones IA Empresarial
Especialista en LLMs, Agentes y Orquestación
guatemalia.com/#contacto · info@guatemalia.com

¿Necesitas implementar IA en tu empresa?

Carlos Montiel es arquitecto de soluciones IA empresarial. Implementa LLMs, Agentes, RAG y orquestadores en empresas de Guatemala y Latinoamérica. Contáctalo para una consultoría.

Contactar a Carlos Montiel

info@guatemalia.com