flawopen.com/AI Security/cve-2026-103956-aws-loom-authentication-bypass
CVE-2026-103956: bypass de autenticación en AWS Loom
CVE-2026-103956 afectaba a Loom for AWS de AWS Labs antes de la versión 1.6.1: sin un proveedor de identidad configurado, cualquier cliente de red podía obtener privilegios de superadministrador. Actualiza a 1.7.0 o posterior para cubrir esta falla y las relacionadas; 1.6.1 ya corrige este bypass de autenticación.[1], [5]
Un edificio deja vacía la recepción, pero el software trata a cada visitante como administrador principal. La corrección hace que la recepción rechace la entrada si no hay un proveedor de identidad configurado; la excepción de desarrollo local exige una opción explícita y que el visitante se conecte desde el mismo equipo.[1], [4]
Conceptos Clave y Términos
Proveedor de identidad (IdP)- Sistema configurado para autenticar a los usuarios de Loom. La condición vulnerable se daba cuando no había configurado ni Cognito ni un IdP externo.[1]
Plano de control- Capa de administración y API que gestiona integraciones de agentes, credenciales y políticas de roles.[1]
Fallar de forma segura- Si falta el servicio de identidad requerido, rechazar la solicitud en vez de conceder una identidad privilegiada predeterminada.[4]
Mapeos de marcos
Flujo de Ataque Paso a Paso
No hay un proveedor de identidad configurado
La condición afectada antes de 1.6.1 es concreta: no hay un grupo de usuarios de Cognito ni un IdP externo.[1]
El fallback crea un usuario privilegiado
La ruta vulnerable get_current_user asignaba silenciosamente t-admin y g-admins-super, incluso a solicitudes sin autenticar.[4]
La API concede autoridad sobre el plano de control
Un cliente con acceso podía actuar como superadministrador, registrar servidores de herramientas, leer credenciales de integración almacenadas o reescribir políticas IAM de roles asociados a agentes gestionados. Este es el impacto descrito por el proveedor, no una prueba de que una instalación fuera comprometida.[1]
La corrección deniega el acceso por defecto
La versión 1.6.1 exige la opción explícita LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV=true y un cliente loopback para la excepción de desarrollo local; de lo contrario, devuelve HTTP 401. AWS recomienda 1.7.0 o posterior para el boletín que reúne las tres fallas.[1], [4], [2], [3]
Matriz de cobertura por versión de Loom
| Rango de versiones | Elusión de autenticación CVE-2026-103956 | Otros problemas del boletín de octubre de AWS | Acción para operadores |
|---|---|---|---|
| <1.6.1 | Afectado si no está configurado Cognito ni un IdP externo; un cliente de red podía obtener acceso de superadministrador. | CVE-2026-103957 y CVE-2026-103958 son problemas distintos, también corregidos en 1.7.0. | Actualice a 1.7.0 o posterior. La 1.6.1 es solo la corrección mínima para esta elusión. |
| 1.6.1–<1.7.0 | Corregido. Sin IdP, las solicitudes reciben 401 salvo que se active la opción de desarrollo local y el cliente sea loopback. | AWS indica que los dos problemas relacionados se corrigieron en 1.7.0. | Actualice a 1.7.0 o posterior para cubrir todo el boletín. |
| 1.7.0 o posterior | Corregido. | AWS identifica la 1.7.0 como la versión que resuelve los tres problemas del boletín. | Mantenga Loom y sus bifurcaciones en una versión compatible y compruebe que incluyan las correcciones. |
Análisis de Causa Raíz
Cuando no se configuraban ni Cognito ni un proveedor de identidad externo, el fallback de la dependencia de autenticación asignaba silenciosamente t-admin y g-admins-super en vez de rechazar la solicitud. La API trataba ese fallback como una identidad autenticada, de modo que cualquier cliente de red que alcanzara el backend podía obtener autoridad de superadministrador sobre el plano de control. La corrección falla de forma segura; la excepción de desarrollo local exige habilitación explícita y un cliente loopback. El registro CVE clasifica el problema como CWE-306 (falta de autenticación para una función crítica) y CWE-1188 (inicialización con un valor predeterminado inseguro).[1], [4], [7]
Código Fuente: Vulnerable vs. Seguro
El fragmento vulnerable resume la descripción del mantenedor de get_current_user: sin Cognito ni un IdP externo, la ruta concedía silenciosamente t-admin / g-admins-super. La versión reforzada resume el comportamiento incorporado upstream y no es una transcripción literal: la excepción local exige la opción explícita y un cliente loopback; las demás solicitudes fallan con HTTP 401. Nota de despliegue de FlawOpen: En producción, confía en request.client solo si la configuración del proxy impide que encabezados reenviados no confiables afirmen ser loopback. Actualiza a 1.6.1 o posterior para corregir este CVE y a 1.7.0 o posterior para cubrir el boletín completo de octubre de 2026. No se muestran solicitudes de explotación ni procedimientos para acceder a credenciales.[4], [1]
# Flujo de control simplificado descrito para la ruta afectada get_current_user
if not cognito_pool and not external_idp:
return User(username="t-admin", groups=["g-admins-super"])
return await authenticate_with_configured_idp(token)
# Rechace por defecto salvo que la excepción local sea explícita y se limite a loopback.
if not cognito_pool and not external_idp:
opted_in = os.getenv("LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV") == "true"
peer_is_local = request.client is not None and ipaddress.ip_address(
request.client.host
).is_loopback
if opted_in and peer_is_local:
return local_development_user()
raise HTTPException(status_code=401, detail="Identity provider is not configured")
return await authenticate_with_configured_idp(token)
Lista de Verificación de Seguridad para Ingeniería
- ✓Actualiza Loom a 1.7.0 o posterior; 1.6.1 es la primera versión que corrige
CVE-2026-103956, mientras que 1.7.0 es la versión objetivo consolidada del boletín.[1], [2], [3] - ✓Confirma que Cognito o un IdP externo esté configurado antes de exponer el backend más allá de loopback.[1]
- ✓Deja
LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEVsin definir en entornos desplegados; si se usa para desarrollo local, verifica que el cliente aceptado sea loopback y que un proxy no confiable no exponga el servicio. Comprobación de despliegue de FlawOpen: confía en la señal loopback solo después de verificar el tratamiento de los encabezados del proxy.[1], [4] - ✓Análisis de FlawOpen: tras actualizar, revisa los accesos y los cambios administrativos del periodo afectado. AWS recomienda rotar los secretos de cliente OAuth2 configurados y revocar y volver a emitir los tokens de acceso que estaban activos durante el periodo afectado. Si se accedió a las credenciales del rol del contenedor, rota las credenciales de sesión del rol IAM y revisa CloudTrail para detectar usos no autorizados.[1]
- ✓Trata
CVE-2026-103957yCVE-2026-103958como fallas distintas corregidas en 1.7.0; restringemcp:writeya2a:writea administradores de confianza hasta actualizar.[1], [3]
Fuentes
- Boletín de seguridad de AWS 2026-124-AWS
- Notas de AWS Loom 1.6.1
- Notas de AWS Loom 1.7.0
- PR upstream #12: corrección de autenticación con fallo seguro
- Registro NVD CVE-2026-103956
- MITRE CWE-306: falta de autenticación para función crítica
- Registro del programa CVE — CVE-2026-103956
- MITRE CWE-1188 — inicialización de un recurso con un valor predeterminado inseguro