
Issabel PBX バージョン 4.0.0-6 には、保存型クロスサイトスクリプティング (XSS) の脆弱性が存在します。これにより、認証された攻撃者が、System → Users → Groups にある Group および Description 入力フィールドを介して、任意の JavaScript または HTML コードを注入できる可能性があります。
| フィールド | 詳細 |
|---|
| CVE ID | CVE-2023-37191 |
| 製品 | Issabel PBX (issabel-pbx) |
| 影響を受けるバージョン | 4.0.0-6 |
| 脆弱性タイプ | 格納型クロスサイトスクリプティング (XSS) |
| 深刻度 | 中 |
| 発見日 | 2023年7月7日 |
| 発見者 | Sahil Ojha |
| ベンダーホームページ | https://www.issabel.org/ |
| ソースコード | https://github.com/IssabelFoundation/issabelPBX |
| テスト環境 | Windows |
Issabel PBX バージョン 4.0.0-6 には、格納型クロスサイトスクリプティング (XSS) の脆弱性が存在します。このアプリケーションは、ユーザーが入力したデータをデータベースに保存し、後でブラウザにレンダリングする際に、適切にサニタイズまたはエンコード処理を行っていません。これにより、認証された攻撃者が システム → ユーザー → グループ にある グループ および 説明 入力フィールドを介して、任意の JavaScript または HTML コードを注入できるようになります。
悪意のあるペイロードが保存されると、サーバー上に永続的に保持されます。その後、管理者を含むすべてのユーザーが影響を受けるページにアクセスするたびに、攻撃者による追加操作を必要とせずに、注入されたスクリプトが自動的にブラウザセッション内で実行されます。これが、格納型 (永続的) XSS を反射型 XSS と区別する点です。ペイロードがページのすべての訪問者に影響を与えるため、影響範囲はより広く、より危険です。
システム → ユーザー → グループ モジュールGroup (名前フィールド) および Description (テキストフィールド)この脆弱性の悪用に成功すると、攻撃者は以下のことが可能になります:
ペイロードが サーバー上に保存 されるため、侵害されたページにアクセスするすべてのユーザーが影響を受け、反射型 XSS 攻撃と比較して被害が拡大します。
ステップ 1: 管理者認証情報を使用して Issabel PBX Web インターフェースにログインします。
ステップ 2: システム → ユーザー → グループ に移動します。グループ および/または 説明 入力フィールドに、以下の XSS ペイロードを入力します:
"><script>alert(1)</script>
フィールドは以下のスクリーンショットのようになります:

ステップ 3: 保存 をクリックします。ペイロードがアプリケーションのデータベースに永続的に保存されます。
ステップ 4: システム → ユーザー → グループ ページに戻るか (または他のユーザーにそのページにアクセスさせます)、注入されたスクリプトがブラウザで自動的に実行されます。以下の画像を参照:

この脆弱性を軽減するために、Issabel PBX 開発チームは以下の修正を適用する必要があります:
入力検証: すべてのユーザー入力をサーバーサイドで厳密に検証します。HTML フォーマットを必要としないフィールドでは、HTML 特殊文字 (<, >, ", ', &) を含む値を拒否またはサニタイズします。
出力エンコーディング: 保存されたデータをブラウザにレンダリングする際に、コンテキストに応じた出力エンコーディング (例: HTML エンティティエンコーディング) を適用して、注入されたマークアップを無害化します。Issabel PBX は PHP ベースであるため、カスタムフィルタリングではなく、PHP 組み込みの htmlspecialchars() または htmlentities() 関数を使用します。
コンテンツセキュリティポリシー (CSP): スクリプトの実行元を制限するために、厳格な Content Security Policy HTTP ヘッダーを実装します。適切に設定された CSP は、入力のサニタイズが回避された場合でも、注入されたスクリプトの実行を防止できます。
定期的なセキュリティ監査: アプリケーション全体のインジェクション脆弱性を特定して修正するために、定期的なコードレビューとペネトレーションテストを実施します。
この情報は 教育および研究目的 でのみ提供されています。著者はこの情報の誤用について一切の責任を負いません。所有していないシステムで脆弱性をテストする前に、必ず適切な書面による許可を取得してください。