
CVE-2026-27579 - Configuración incorrecta de CORS – Origen arbitrario con credenciales → Exposición autenticada de datos de cuenta entre orígenes
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
El proyecto realtime-collaboration-platform contenía una configuración incorrecta de CORS en su configuración de backend de Appwrite.
El servidor:
Esta combinación permitía que un dominio controlado por el atacante:
Esto resultó en la exposición de:
El backend no logró validar y restringir adecuadamente la cabecera Origin.
Configuración incorrecta:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
O reflexión dinámica de orígenes arbitrarios.
Esto viola los principios de seguridad de CORS porque:
Los navegadores permiten solicitudes de origen cruzado con credenciales solo cuando el origen está explícitamente confiado.
En cambio, la aplicación confiaba en cualquier origen, creando un vector de exfiltración de datos de origen cruzado.
| Área de impacto | Efecto |
|---|---|
| Confidencialidad | ALTO |
| Integridad | Ninguno |
| Disponibilidad | Ninguno |
| Alcance | Cambiado |
Un atacante podría:
No se requiere privilegio directo.
Esto lo convierte en un poderoso ataque del lado del cliente con potencial de explotación en el mundo real.
fetch("https://target-appwrite-endpoint/v1/account", {
credentials: "include"
})
.then(res => res.json())
.then(data => {
console.log("Exfiltrated:", data);
});
Si la víctima tiene la sesión iniciada, su cookie de sesión se incluye automáticamente.
Debido al CORS permisivo, el atacante puede leer la respuesta.
La mitigación adecuada requiere:
Ejemplo de configuración correcta:
Access-Control-Allow-Origin: https://trusted-domain.com
Access-Control-Allow-Credentials: true
O:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: false
Configuración incorrecta de CORS + credenciales = Fuga de datos.
Nunca permitas:
* + credentials=true