概要
Dolibarr 24.0.0 未満のバージョンには、CSVおよびXLSXインポートウィザードにSQLインジェクションの脆弱性があります。このウィザードは htdocs/imports/import.php の GETPOST(‘updatekeys’, ‘array’) を使って更新キーを読み取りますが、ここで適用されるのはHTMLを除去するものの、SQLキーワードやコメントマーカー、かっこ、スペースおよび引用符はそのまま残る一般的な alphanohtml フィルターだけです。htdocs/core/modules/import/import_csv.modules.php 内の import_insert() 関数は、送信された値を反復処理して、$where[] = $key.’ = ‘.$data[$key] の形でフィルターを構築します。その際、最初に preg_replace(‘/^.*./i’, ”, $key) を適用しますが、これはエイリアス除去であり、ドットを含まない値には効果がありません。組み立てられた文字列は $this->db->query() により実行されます。インジェクションされた SELECT はインポートが割り当てる行IDを解決し、$lastinsertid に代入されます。これが後続の UPDATE の WHERE 条件となるため、攻撃者が選んだ整数を返す UNION SELECT は任意のテーブル内容を漏洩させるだけでなく、どの行がインポートで上書きされるかまで操作できます。カテゴリリンクテーブルに関しては、生のフィルター配列が直接その UPDATE に挿入されます。インターフェースは正当なカラムコードの固定リストを提供していますが、サーバー側では送信値の検証が一切行われていません。インポート権限を持つユーザーがこれを悪用する可能性があります。リリース23.0.4には修正が含まれておらず、許可リストによる検証は24.0.0で追加されました。
技術情報
- 公開日: 2026-09-01T17:03:16+09:00
- 更新日: 2026-09-01T17:03:16+09:00
参考リンク
対処方法
該当ソフトウェアの最新版への更新、または開発元が提供する緩和策の適用を推奨します。運用環境に応じて事前検証の上で実施してください。
免責
本記事は公開情報をもとに自動集約された速報です。正確性・完全性は保証できません。必ず一次情報(上記リンク等)をご確認ください。
