Vulnerabilidades críticas en Langroid 2026
Vulnerabilidad crítica - 23/02
Introducción
CVE‑2026‑25481 es una vulnerabilidad que permite bypass de seguridad y ejecución remota de código en el framework Langroid, usado para desarrollar aplicaciones potenciadas por modelos de lenguaje (LLM). El problema radica en que una protección implementada para mitigar una vulnerabilidad previa (CVE‑2025‑46724) en el módulo pandas_eval de TableChatAgent puede ser eludida. El filtro de seguridad (WAF) en langroid/utils/pandas_utils.py intenta bloquear inyecciones de código, ero la función interna _literal_ok() no lanza la excepción esperada cuando se encuentra con una entrada insegura, lo que permite procesar expresiones peligrosas. Combinado con acceso no restringido a atributos “dunder” como __globals__ y __builtins__, un atacante puede encadenar métodos de un DataFrame para filtrar y exponer el builtin eval y usarlo para ejecutar código arbitrario.
Análisis
CVE-2026-25481 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H - 9,6
CVE‑2026‑25481 se inicia cuando un atacante envía una entrada maliciosa al agente TableChatAgent, la cual es procesada por la función pandas_eval. Esta función utiliza internamente _literal_ok() para validar expresiones y bloquear intentos de inyección de código, pero la implementación falla al detectar ciertas construcciones peligrosas, permitiendo que expresiones que hacen referencia a atributos internos de Python, conocidos como “dunder”, pasen inadvertidas. Una vez que la expresión maliciosa esquiva la validación, el atacante puede aprovechar referencias como __globals__ y __builtins__ para obtener acceso a la función eval y ejecutar código arbitrario dentro del contexto de la aplicación vulnerable. De esta manera, mediante un encadenamiento de objetos de pandas y Python, el atacante logra ejecutar comandos del sistema operativo o scripts no autorizados, comprometiendo la integridad y seguridad del entorno de ejecución.
Versiones afectadas
Cualquier versión anterior a 0.59.32.
Recomendaciones
Actualizar cualquier instancia de Langroid a la versión 0.59.32.
Workarounds
No hay workarounds para esta vulnerabilidad.
