
issabel-pbx v4.0.0-6의 가상 팩스(Virtual Fax) 관리 기능에서 CSRF(교차 사이트 요청 위조) 취약점이 존재합니다.
CVE ID: CVE-2023-37598
취약점 유형: 사이트 간 요청 위조 (CSRF)
영향받는 제품: issabel-pbx v4.0.0-6
심각도: 중간
발견자: Sahil Ojha
공개 날짜: 10/07/2023
공급업체 홈페이지: https://www.issabel.org/
소프트웨어 저장소: https://github.com/IssabelFoundation/issabelPBX
테스트 환경: Windows
issabel-pbx v4.0.0-6의 가상 팩스 관리 기능에는 사이트 간 요청 위조(CSRF) 취약점이 존재합니다. 이 애플리케이션은 가상 팩스 항목 삭제 동작에 CSRF 보호(예: CSRF 방지 토큰 또는 SameSite 쿠키 속성)를 구현하지 않습니다.
이로 인해 원격의 인증되지 않은 공격자는 악성 HTML 페이지를 만들어 인증된 관리자나 사용자가 해당 페이지를 방문하면 피해자를 대신하여 위조된 HTTP 요청을 애플리케이션에 자동으로 제출하도록 할 수 있습니다. 위조 요청은 피해자의 인지나 동의 없이 가상 팩스 레코드를 삭제하여 데이터 손실과 팩스 서비스 중단을 초래합니다.
사이트 간 요청 위조(CSRF)는 피해자의 브라우저를 속여 사용자의 의도 없이 웹 애플리케이션에 인증된 요청을 보내도록 하는 공격입니다. 브라우저는 모든 요청에 세션 쿠키를 자동으로 포함하므로 CSRF 토큰이 없으면 서버는 정상 요청과 위조 요청을 구분할 수 없습니다.
| 매개변수 | 값 |
|---|---|
| 애플리케이션 |
다음 HTML 파일은 인증된 issabel-pbx 사용자가 열면 id_fax=1인 가상 팩스를 삭제하는 위조된 POST 요청을 자동으로 제출합니다.
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_fax" value="1" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
참고:
{Issabel IP}를 대상 서버의 IP 주소 또는 호스트 이름으로 바꾸세요.id_fax값을 변경하면 해당 ID를 가진 모든 가상 팩스 레코드를 대상으로 삼을 수 있습니다.
Issabel PBX 관리자 패널에 로그인하고 가상 팩스 페이지로 이동합니다:
https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1

Burp Suite 프록시를 사용해 삭제 요청을 캡처합니다. 가상 팩스 항목 삭제를 시도하고 요청을 가로챈 후 마우스 오른쪽 버튼을 클릭하고 Engagement Tools → Generate CSRF PoC로 이동합니다.

생성된 CSRF 익스플로잇을 HTML 파일로 저장합니다 (위의 PoC 참조).
익스플로잇을 이미 Issabel 애플리케이션에 로그인한 사용자에게 전달합니다(예: 피싱 이메일 또는 악성 링크). 피해자가 페이지를 열고 **"Submit request"**를 클릭하면 추가 상호작용 없이 가상 팩스 항목이 삭제됩니다.


공격자는 악성 HTML 파일을 외부 서버에 호스팅하거나 이메일에 포함시킵니다. 인증된 Issabel PBX 관리자가 동일한 브라우저 세션에서 이 페이지를 열면 브라우저는 유효한 세션 쿠키를 포함한 위조된 POST 요청을 Issabel 서버로 자동 전송합니다. 서버는 이 요청을 정상적인 요청으로 처리하여 대상 가상 팩스 레코드를 삭제합니다. 피해자는 경고를 받지 못하며, 팩스 목록을 직접 확인하기 전까지 삭제 사실을 인지하지 못할 수 있습니다.
이 취약점을 해결하려면 공급업체는 다음 완화 조치 중 하나 이상을 구현해야 합니다:
SameSite=Strict 또는 SameSite=Lax를 설정하여 브라우저가 교차 출처 요청에 쿠키를 전송하지 못하도록 합니다.X-Requested-With: XMLHttpRequest)를 요구하고 서버 측에서 검증합니다.| issabel-pbx |
| 버전 | 4.0.0-6 |
| 취약한 URL | /index.php?menu=faxnew&action=view&id=<ID> |
| 취약한 동작 | delete (POST 매개변수) |
| 누락된 보호 조치 | CSRF 토큰 / SameSite 쿠키 속성 |