CVE-2025-3568
악성 SVG 파일을 통한 권한 상승 (Privilege Escalation via Malicious SVG File)
요약
Krayin CRM 2.1.0에서 보안 취약점이 발견되었습니다. 이 취약점은 낮은 권한의 사용자가 관리자에게 악성 SVG 파일을 열도록 유도하여 권한을 상승시킬 수 있게 합니다. 이 익스플로잇은 SVG를 통한 사이트 간 요청 위조(CSRF) 및 **사이트 간 스크립팅(XSS)**을 활용하여 다음을 수행합니다:
- 쿠키에서 관리자의 XSRF 토큰을 탈취합니다.
- 보호되지 않은 API 엔드포인트를 통해 현재 비밀번호를 모르는 상태에서 관리자의 비밀번호를 변경합니다.
이는 전체 관리자 계정 탈취 및 데이터 유출로 이어질 수 있습니다.
기술적 세부 사항
취약점 유형
- SVG 파일 업로드를 통한 CSRF + XSS (저장형 클라이언트 측 공격)
- 깨진 접근 제어 (현재 비밀번호 없이 비밀번호 변경)
영향을 받는 구성 요소
- 사용자 관리 모듈 (
/admin/settings/users/edit/[ID])
- 파일 업로드/이메일 첨부 파일 처리 (임베디드 JavaScript가 포함된 SVG)
공격 흐름
- 공격자(낮은 권한 사용자) 는 관리자에게 악성 SVG 첨부 파일이 포함된 이메일을 보냅니다.
- 관리자가 새 탭에서 SVG 파일을 엽니다.
- SVG 내부의 JavaScript가 실행되어 관리자의
XSRF-TOKEN 쿠키를 수집합니다.
- CRM의 사용자 관리 엔드포인트로 위조된 POST 요청이 전송되어 관리자의 비밀번호가 변경됩니다.
- 공격자는 새 비밀번호를 사용하여 전체 관리자 액세스 권한을 얻습니다.
개념 증명(PoC)
https://github.com/user-attachments/assets/36f5f5ec-d7f1-4ea8-aa78-f1be396e13d3
영향
- 전체 관리자 계정 탈취: 공격자는 관리자 비밀번호를 재설정하고 로그인할 수 있습니다.
- 데이터 유출: 민감한 CRM 데이터(고객 정보, 거래 내역 등)에 대한 액세스.
- 지속성: 공격자는 백도어 계정을 생성하거나 시스템 설정을 수정할 수 있습니다.
근본 원인 분석
SVG 삭제(샌드박싱) 누락
- CRM은 임베디드 JavaScript가 포함된 SVG 파일을 허용하므로 XSS가 가능합니다.
취약한 비밀번호 변경 로직
/admin/settings/users/edit 엔드포인트는 현재 비밀번호 확인을 강제하지 않습니다.
결론
이 취약점은 CRM 보안에 심각한 위험을 초래하며, 공격자가 최소한의 노력으로 관리자 계정을 탈취할 수 있게 합니다. 문제를 패치하고 악용을 방지하기 위한 즉각적인 조치가 필요합니다.
참고 자료