
CVE-2026-27579 - CORS 잘못된 구성 – 자격 증명이 포함된 임의 출처 → 인증된 교차 출처 계정 데이터 노출
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
realtime-collaboration-platform 프로젝트에는 Appwrite 백엔드 구성에 CORS 오구성이 존재했습니다.
서버는:
이러한 조합으로 인해 공격자가 제어하는 도메인은 다음을 수행할 수 있었습니다:
그 결과 다음 정보가 노출되었습니다:
백엔드는 Origin 헤더를 제대로 검증하고 제한하지 못했습니다.
잘못된 구성:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
또는 임의 출처의 동적 반영.
이는 CORS 보안 원칙을 위반합니다. 왜냐하면:
브라우저는 출처가 명시적으로 신뢰되는 경우에만 자격 증명이 포함된 교차 출처 요청을 허용합니다.
대신 애플리케이션은 모든 출처를 신뢰하여 교차 출처 데이터 유출 벡터를 생성했습니다.
| 영향 영역 | 효과 |
|---|---|
| 기밀성 | HIGH |
| 무결성 | 없음 |
| 가용성 | 없음 |
| 범위 | 변경됨 |
공격자는 다음을 수행할 수 있습니다:
직접적인 권한은 필요하지 않습니다.
이는 실제 악용 가능성이 있는 강력한 클라이언트 측 공격입니다.
fetch("https://target-appwrite-endpoint/v1/account", {
credentials: "include"
})
.then(res => res.json())
.then(data => {
console.log("Exfiltrated:", data);
});
피해자가 로그인한 경우 세션 쿠키가 자동으로 포함됩니다.
관대한 CORS 정책 때문에 공격자는 응답을 읽을 수 있습니다.
적절한 완화를 위해서는 다음이 필요합니다:
올바른 구성 예시:
Access-Control-Allow-Origin: https://trusted-domain.com
Access-Control-Allow-Credentials: true
또는:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: false
CORS 오구성 + 자격 증명 = 데이터 유출.
다음을 절대 허용하지 마세요:
* + credentials=true