
Se ha revelado una falla de seguridad crítica en Grist-Core, una versión autohospedada de código abierto de la base de datos de hoja de cálculo relacional Grist, que podría permitir la ejecución remota de código.
Cyera Research Labs rastrea esta vulnerabilidad como CVE-2026-24002 (puntuación CVSS: 9.1) y tiene el nombre en código «Cellbreak».
«Una fórmula maliciosa podría convertir una hoja de cálculo en una cabeza de puente de ejecución remota de código (RCE)», dijo el investigador de seguridad Vladimir Tokarev, quien descubrió la falla. «Este escape de espacio aislado permite a los autores de fórmulas ejecutar comandos del sistema operativo o ejecutar JavaScript en tiempo de ejecución del host, colapsando los límites entre la ‘lógica de celda’ y la ejecución del host».

Cellbreak se clasifica como un caso de escape del sandbox de Pyodide. Este es el mismo tipo de vulnerabilidad que también afectó recientemente a n8n (CVE-2025-68668, puntuación CVSS: 9,9, también conocido como N8scape). Esta vulnerabilidad se resolvió en la versión 1.7.9, lanzada el 9 de enero de 2026.
«Una revisión de seguridad identificó una vulnerabilidad en el método de aislamiento ‘pyodide’ disponible en Grist», dijeron los administradores del proyecto. «Puedes comprobar si estás afectado en la sección Sandbox del panel de administración de tu instancia. Si ves ‘gvisor’ allí, no estás afectado. Si ves «pyodide», es importante actualizar a esta versión de Grist o posterior.
En pocas palabras, la raíz de este problema radica en la ejecución de expresiones de Python por parte de Grist. Esto permite ejecutar expresiones que no son de confianza dentro de Pyodide. Pyodide es una distribución de Python que le permite ejecutar código Python normal directamente en su navegador web dentro del entorno limitado de WebAssembly (WASM).

La idea detrás de este proceso de pensamiento es garantizar que el código estilo Python se ejecute en un entorno aislado, pero el hecho de que Grist utilice un enfoque de estilo lista de bloqueo hace posible escapar del entorno limitado y, en última instancia, ejecutar comandos en el host subyacente.
«El diseño de la zona de pruebas permite atravesar la jerarquía de clases de Python y hace que los tipos c estén disponibles. Esto proporciona acceso a las funciones de tiempo de ejecución de Emscripten a las que no se puede acceder desde las celdas de fórmula», explicó Tokarev. «Esta combinación permite la ejecución de comandos del 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 divulgación de seguridad».
Según Grist, si un usuario abre un documento malicioso con GRIST_SANDBOX_FLAVOR configurado en Pyodide, ese documento puede usarse para ejecutar procesos arbitrarios en el servidor que aloja a Grist. Un atacante con esta capacidad de ejecutar comandos o JavaScript a través de una expresión puede utilizar este comportamiento para acceder a las credenciales de la base de datos y las claves API, leer archivos confidenciales y brindar oportunidades de movimiento lateral.

Grist solucionó este problema moviendo la ejecución de expresiones Pyodide en el tiempo de ejecución de Deno JavaScript de forma predeterminada. Sin embargo, tenga en cuenta que el riesgo reaparece si el operador elige explícitamente establecer GRIST_PYODIDE_SKIP_DENO en el valor ‘1’. Esta configuración debe evitarse en escenarios donde se puedan ejecutar expresiones que no sean confiables o que no sean confiables.
Para reducir los riesgos potenciales, se recomienda a los usuarios que actualicen a la última versión lo antes posible. Para aliviar temporalmente este problema, recomendamos configurar la variable de entorno GRIST_SANDBOX_FLAVOR en ‘gvisor’.
«Esto refleja un riesgo sistémico observado en otras plataformas de automatización: una única superficie de ejecución con acceso privilegiado puede alterar los límites de confianza de una organización en caso de una falla en el sandbox», dijo Tokarev.
“Si la ejecución de fórmulas se basa en una zona de pruebas permisiva, un único escape puede convertir la “lógica de datos” en “ejecución del host”. Los hallazgos de Grist-Core demuestran por qué el sandboxing debe estar basado en funciones y en una defensa en profundidad, en lugar de una frágil lista de bloqueo. El costo del fracaso no es sólo un error, sino un compromiso en el plano de datos. «
Source link
