Vulnerabilidad crítica en Grist-Core permite RCE a través de fórmulas

Publicado el

Vulnerabilidad Crítica en Grist-Core

Una grave vulnerabilidad ha sido identificada en Grist-Core, una versión de hoja de cálculo y base de datos relacional de código abierto y autogestionada, que podría permitir la ejecución remota de código (RCE). Esta vulnerabilidad, conocida como CVE-2026-24002 y con un puntaje CVSS de 9.1, ha sido apodada Cellbreak por Cyera Research Labs.

El investigador de seguridad Vladimir Tokarev, quien descubrió la falla, advirtió que "una fórmula maliciosa puede convertir una hoja de cálculo en un punto de acceso para la RCE". Esta escape de sandbox permite al autor de la fórmula ejecutar comandos del sistema operativo o ejecutar JavaScript en tiempo de ejecución del host, eliminando la barrera entre la lógica de las celdas y la ejecución en el host.

### Características de la Vulnerabilidad

Cellbreak se clasifica como un caso de escape de sandbox de Pyodide, un tipo de vulnerabilidad que también afectó recientemente a n8n (CVE-2025-68668, CVSS 9.9, conocido como N8scape). La vulnerabilidad ha sido corregida en la versión 1.7.9, lanzada el 9 de enero de 2026. Los mantenedores del proyecto afirmaron que "una revisión de seguridad identificó una vulnerabilidad en el método de sandboxing 'pyodide' disponible en Grist".

Los usuarios pueden comprobar si están afectados en la sección de sandboxing del Panel de Administración de su instancia. Si aparece 'gvisor', no están afectados; si aparece 'pyodide', es crucial actualizar a la versión más reciente.

### Causas de la Falla

El problema radica en la ejecución de fórmulas en Python de Grist, que permite que fórmulas no confiables se ejecuten dentro de Pyodide, una distribución de Python que permite ejecutar código Python directamente en un navegador web en un entorno de WebAssembly (WASM). Aunque la intención es asegurar que el código de la fórmula se ejecute en un entorno aislado, el enfoque de lista de bloqueos utilizado por Grist permite escapar de la sandbox y, en última instancia, lograr la ejecución de comandos en el host.

Tokarev explicó que "el diseño de la sandbox permite la travesía a través de la jerarquía de clases de Python y deja disponibles los ctypes, lo que abre el acceso a funciones de tiempo de ejecución de Emscripten que nunca deberían ser accesibles desde una celda de fórmula". Esta combinación habilita la ejecución de comandos en el host y la ejecución de JavaScript en el tiempo de ejecución del host, con consecuencias prácticas como el acceso al sistema de archivos y la exposición de secretos.

### Consecuencias y Recomendaciones

Según Grist, si un usuario ha establecido GRIST_SANDBOX_FLAVOR como Pyodide y abre un documento malicioso, ese documento podría utilizarse para ejecutar procesos arbitrarios en el servidor que aloja Grist. Con esta capacidad, un atacante podría acceder a credenciales de bases de datos y claves API, leer archivos sensibles y aprovechar oportunidades de movimiento lateral.

Grist ha abordado el problema al mover la ejecución de fórmulas de Pyodide bajo el tiempo de ejecución de JavaScript de Deno por defecto. Sin embargo, el riesgo vuelve a surgir si un operador opta por establecer GRIST_PYODIDE_SKIP_DENO en el valor "1", lo cual se debe evitar en escenarios donde es probable que se ejecuten fórmulas no confiables o semi-confiables. Se recomienda a los usuarios actualizar a la versión más reciente lo antes posible para mitigar riesgos potenciales.

Como medida temporal, se aconseja establecer la variable de entorno GRIST_SANDBOX_FLAVOR en "gvisor". Tokarev enfatizó que "esto refleja el riesgo sistémico encontrado en otras plataformas de automatización: una única superficie de ejecución con acceso privilegiado puede colapsar las fronteras de confianza organizacional cuando su sandbox falla". Los hallazgos sobre Grist-Core muestran por qué el sandboxing debe ser basado en capacidades y con defensas en profundidad, no una lista de bloqueos frágil. El costo del fallo no es solo un error, sino una violación del plano de datos.

Fuente

Ver noticia original