🇰🇷 한글 설명
Dify v1.9.1의 /console/api/setup 엔드포인트에서 CORS 설정 오류가 발견되었습니다. 이 엔드포인트는 모든 Origin 헤더를 허용하고 인증 정보(Credentials)를 포함할 수 있도록 설정되어 있어, 외부의 임의의 도메인이 사용자의 인증된 요청을 수행할 수 있습니다.
💡 쉬운 설명
웹사이트의 보안 설정 실수로 인해, 나쁜 의도를 가진 다른 사이트가 사용자의 권한을 도용하여 몰래 명령을 내릴 수 있는 상태입니다. 사용자가 로그인된 상태에서 공격용 사이트에 접속하면 개인 정보나 설정이 유출될 위험이 있습니다.
🇺🇸 원문 (English)
A Cross-Origin Resource Sharing (CORS) misconfiguration vulnerability exists in Dify v1.9.1 in the /console/api/setup endpoint. The endpoint implements an insecure CORS policy that reflects any Origin header and enables Access-Control-Allow-Credentials: true, permitting arbitrary external domains to make authenticated requests. NOTE: the Supplier disputes this because the endpoint configuration is intentional to support bootstrap.
⚔️ 공격 벡터
공격자가 조작된 Origin 헤더를 사용하여 사용자의 브라우저를 통해 인증된 API 요청을 강제로 수행함
🛡️ 대응 방법
CORS 정책을 신뢰할 수 있는 도메인으로 제한하거나, Access-Control-Allow-Credentials 설정을 검토하여 수정해야 함
🔧 검증 코드
응답 헤더에 Access-Control-Allow-Origin이 attacker.com으로 나타나고 Access-Control-Allow-Credentials가 true이면 취약함
curl -I -H 'Origin: https://attacker.com' https://<target-ip>/console/api/setup 2>/dev/null | grep -E 'Access-Control-Allow-Origin|Access-Control-Allow-Credentials'