🇰🇷 한글 설명
CordysCRM 1.7.4 미만 버전에서 ShiroFilter 설정 오류로 인해 특정 경로가 익명 사용자에게 노출되는 취약점이 존재합니다. 공격자가 파일 ID를 추측할 경우 권한 확인 없이 다른 조직의 파일을 다운로드할 수 있습니다.
💡 쉬운 설명
로그인하지 않은 외부인이 파일의 주소(ID)만 알면 다른 사용자의 개인 파일을 마음대로 내려받을 수 있는 보안 허점입니다. 파일의 소유권을 확인하는 절차가 빠져 있어 발생하는 문제입니다.
🇺🇸 원문 (English)
CordysCRM is an open source AI-powered customer relationship management system that supports private deployment. Prior to 1.7.4, ShiroFilter configures /attachment/preview/{id} and /pic/preview/{id} as anonymous, and both routes call AttachmentService.getResource, which performs a bare primary-key lookup without ownership, organization, or permission checks. An unauthenticated caller who guesses or observes an id generated by IDGenerator.nextStr can download files uploaded by users in other organizations because the stored organization id is used only to locate the file rather than authorize the caller. This issue is fixed in version 1.7.4.
📍 영향받는 시스템
CordysCRM 1.7.4 미만 모든 버전
⚔️ 공격 벡터
인증되지 않은 공격자가 예측 가능한 파일 ID를 사용하여 특정 API 경로(/attachment/preview/{id} 등)로 직접 접근
🛡️ 대응 방법
CordysCRM을 보안 패치가 적용된 1.7.4 버전 이상으로 업데이트
🔧 검증 코드
인증 없이 요청했을 때 HTTP 200 OK가 반환되면 취약한 상태이며, 403 Forbidden 등이 반환되면 안전한 상태입니다.
curl -s -I http://<target-ip>:<port>/attachment/preview/test_id | grep -E 'HTTP/1.1 200|HTTP/1.1 403'