
NLWeb de Microsoft: una descripción general
En mayo de 2023, durante la conferencia Build 2025, Microsoft presentó una iniciativa innovadora conocida como NLWeb, que significa “Web en lenguaje natural”.Este proyecto tenía como objetivo facilitar interacciones inteligentes entre agentes de IA y sitios web, permitiéndoles realizar tareas complejas al interactuar directamente con servicios en línea.
Implicaciones de NLWeb
Entre las empresas involucradas, Shopify y TripAdvisor han expresado su apoyo a este concepto, posicionando a NLWeb como un componente clave en lo que Microsoft llama la “web agentic”.Esta visión promete un futuro donde la IA puede ejecutar de forma autónoma una variedad de tareas en línea, agilizando significativamente las experiencias de los usuarios.
Descubrimiento de vulnerabilidades de seguridad
Sin embargo, han surgido importantes preocupaciones en torno a la seguridad del framework NLWeb. Aonan Guan, investigador de seguridad, junto con su colaborador Lei Wang, identificaron una vulnerabilidad de cruce de rutas en el repositorio de código del proyecto de código abierto. Su descubrimiento se originó tras examinar el repositorio de GitHub de NLWeb, en particular un archivo llamado. webserver/static_file_handler.py
Análisis técnico de la vulnerabilidad
La falla identificada se encuentra en un segmento específico de código:
# The vulnerable code snippet safe_path = os.path.normpath(path.lstrip('/'))
posibles_raíces = [ APP_ROOT, os.path.join(APP_ROOT, ‘sitio’, ‘wwwroot’), ‘/inicio/sitio/wwwroot’, os.environ.get(‘INICIO’, »), ]
# Más adelante en el código…full_path = os.path.join(root, safe_path)
La primera línea de este fragmento parece inofensiva; está diseñada para normalizar las rutas eliminando separadores innecesarios y referencias de nivel superior, un proceso documentado en la documentación oficial de Python. os.path.normpath()
Impacto de la vulnerabilidad
Si bien esta función es beneficiosa, introduce una vulnerabilidad de seguridad. Según Guan, no impide que los usuarios utilicen técnicas de navegación de directorios, como secuencias, para navegar más allá del directorio web previsto. ../
Para validar el problema, Guan configuró un servidor local en [nombre del servidor].Al ejecutar el comando [nombre del servidor], recuperó correctamente el contenido de [nombre del servidor], información vital sobre sistemas UNIX que contiene los detalles de las cuentas de usuario. 0.0.0.0:8000
curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd"
/etc/passwd
Además, Guan pudo acceder a otros archivos confidenciales, incluido el archivo del proyecto, que siempre debe mantenerse confidencial debido a que contiene credenciales confidenciales, como claves API. Esto se demostró aún más al ejecutar el comando. .env
curl "http://localhost:8000/static/..%2f..%2f..%2fUsers//NLWeb/code/.env"
Respuesta y recomendaciones de Microsoft
Tras los hallazgos de Guan, informados el 28 de mayo, Microsoft reconoció el problema ese mismo día e implementó una solución en 48 horas. La solución implicó varias medidas críticas:
- Filtrado inicial para cualquier instancia de en la ruta para contrarrestar posibles intentos de atravesar el directorio.
..
- Verificación de que el archivo solicitado tenga una extensión aceptable, incluidos formatos como.html, .css y.json.
- Resolución de la ruta absoluta para confirmar que reside dentro de un directorio raíz autorizado, evitando así cualquier acceso no autorizado.
Ante este incidente, Guan enfatiza la importancia de actualizar inmediatamente cualquier instancia de NLWeb. Destaca que, a medida que se expande el concepto de la web agéntica, se exponen nuevas vulnerabilidades, en particular porque el procesamiento del lenguaje natural puede interpretar inadvertidamente rutas de archivos o comandos maliciosos si no se gestiona con el máximo escrutinio.
Puede encontrar más información sobre este problema y el informe de vulnerabilidad completo en Neowin.
Deja una respuesta