CVE-2025-67730 – 저장형 크로스 사이트 스크립팅 (XSS)
개요
CVE ID: CVE-2025-67730
취약점 유형: 저장형 크로스 사이트 스크립팅 (XSS)
심각도: 중간~높음 (상황에 따라 다름)
이 취약점으로 인해 인증된 사용자가 Job, Course, Batch 양식의 설명 필드에 악성 HTML과 JavaScript를 주입할 수 있었습니다. 주입된 페이로드는 이후 영향을 받은 Job, Course 또는 Batch를 조회하는 모든 사용자의 브라우저에서 자동으로 실행되었습니다.
영향을 받는 구성 요소
- Job 설명 필드
- Course 설명 필드
- Batch 설명 필드
영향
- 피해자 브라우저에서 임의 JavaScript 실행
- 세션 하이재킹
- 자격 증명 탈취
- 계정 탈취 (권한 수준에 따라 다름)
- DOM 조작 및 피싱
페이로드가 저장형이므로 공격은 지속되며, 손상된 콘텐츠를 조회하는 모든 사용자에게 영향을 미칩니다.
공격 시나리오
- 공격자는 유효한 사용자 계정으로 로그인합니다.
- 공격자는 Job, Course 또는 Batch를 생성하거나 편집합니다.
- 설명 필드에 악성 JavaScript가 삽입됩니다.
- 페이로드가 데이터베이스에 저장됩니다.
- 영향을 받는 페이지를 여는 모든 사용자가 페이로드를 실행합니다.
개념 증명 (PoC)
">
재현 단계:
- 인증된 사용자로 로그인합니다.
- Job / Course / Batch 생성 또는 편집 페이지로 이동합니다.
- 설명 필드에 페이로드를 붙여넣습니다.
- 양식을 저장합니다.
- 생성된 Job / Course / Batch를 엽니다.
- 브라우저에서 JavaScript가 실행됩니다.
근본 원인
- 서버 측 HTML 삽입 방지(sanitization) 누락 또는 불충분
- 사용자 제공 입력의 안전하지 않은 렌더링
- 템플릿에서 출력 인코딩 부재
수정 / 완화
공식 패치
적용된 보안 개선 사항
- 입력에 대한 적절한 HTML 삽입 방지(sanitization)
- 렌더링 전 안전한 출력 인코딩
- 실행 가능한 태그 및 속성 제한
권장 모범 사례
- 항상 서버 측에서 사용자 입력을 삽입 방지(sanitize)
- 상황(HTML, JS, URL)에 따라 출력 인코딩 적용
- 신뢰할 수 있는 HTML 삽입 방지 도구(예: DOMPurify) 사용
- 콘텐츠 보안 정책(CSP) 구현
타임라인
- 보고자: Dharan Raghunathan
- 상태: 수정됨
- 패치 릴리스: 버전 2.42.0
감사의 말
이 문제는 Dharan Raghunathan에 의해 책임 있는 방식으로 공개되었습니다.
참고 자료
면책 조항
이 문서는 교육 및 방어적 보안 목적으로만 제공됩니다.