
Cacti ≤1.2.30のCVE-2026-39938脆弱性の詳細レポート。認証なしのLFIがOSコマンドインジェクションRCEに連鎖することを実証し、PoC、根本原因分析、修復ガイダンスを提供します。
| フィールド | 値 |
|---|
| 製品 | Cacti — CompleteなRRDtoolベースのグラフ化ソリューション |
| 影響を受けるバージョン | ≤ 1.2.30 |
| 脆弱性クラス | CWE-22: パストラバーサル (LFI) → CWE-78: OSコマンドインジェクション |
| 攻撃ベクトル | ネットワーク |
| 認証 | 不要 (ゲストアカウントバイパス) |
| ユーザー操作 | 不要 |
| CVSSv3.1スコア | 9.8 — CRITICAL |
| ベクター | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Cacti ≤ 1.2.30 は、graph_image.php の graph_theme パラメータを介した 認証なしローカルファイルインクルージョン (LFI) に対して脆弱であり、Windows 上の cacti_escapeshellarg() による OS コマンドインジェクションを介した リモートコード実行 (RCE) に連鎖します。
HTTP Request
│
▼
graph_image.php
│
├── $guest_account = true → 認証バイパス (ログイン不要)
│
├── graph_theme パラメータ → LFI (CWE-22)
│ └── basename() バイパスによるパストラバーサル
│
└── その他のパラメータ (graph_height など)
└── cacti_escapeshellarg() → OSインジェクション (CWE-78)
└── proc_open() → RCE
graph_theme による LFIgraph_theme パラメータのサニタイズが不十分です。修正では basename() を使用しようとしましたが、これは簡単にバイパス可能です。themes/../../etc/passwd のようなパスは、basename() の検証を通過する一方で、ディレクトリトラバーサルを実行します。
graph_image.php の脆弱なコードパス:
$theme = basename($_GET['graph_theme']); // basename() では不十分
include_once("./include/theme_" . $theme . ".php"); // LFI
1.2.31 での修正では、basename() を cacti_validate_theme() に置き換え、ファイルシステムの許可リストを使用しています。
| 条件 | 可能性 | 備考 |
|---|---|---|
| Cacti が Windows 上で動作 | 企業で一般的 | cmd.exe エスケープの欠陥により RCE が可能 |
| ゲストアカウントが有効 | 一般的 — 多くの場合デフォルト | ゲストユーザーは公開グラフ表示を許可 |
| 少なくとも1つのグラフが存在 | ほぼ普遍的 | インストール後に local_graph_id=1 が存在 |
| RRDtool がインストール済み | Cacti に必要 | 常に存在 |
GET /cacti/graph_image.php?local_graph_id=1&graph_theme=../../../../etc/passwd
GET /cacti/graph_image.php?local_graph_id=1&graph_height=100" & whoami & "&action=view
OS コマンドインジェクションはすでに直接的なリモートコード実行 (RCE) を提供するため、侵害を達成するために LFI は必要ありません。
しかし、研究者の視点から両方の問題を合わせて考えると:
これは、複数の脆弱性を組み合わせることで全体的な影響が増大し、悪用がより容易で信頼性が高くなることを示しています。
| 柱 | 評価 | 説明 |
|---|---|---|
| 機密性 | 高 | Webサーバーファイルシステム (設定、DB資格情報) への完全な読み取りアクセス |
| 整合性 | 高 | 任意のコマンド実行、Webシェルの展開 |
| 可用性 | 高 | プロセスの終了、ファイルの破損、DoS |
| メトリック | 値 |
|---|---|
| 攻撃ベクトル | ネットワーク |
| 攻撃の複雑さ | 低 |
| 必要な権限 | 不要 |
| ユーザー操作 | 不要 |
| スコープ | 変更なし |
| 機密性 | 高 |
| 整合性 | 高 |
| 可用性 | 高 |
スコア: 9.8 — CRITICAL
| 優先度 | アクション |
|---|---|
| 即時 | Cacti 1.2.31 以降にアップグレード |
MENG HOKSENG
独立系セキュリティ研究者
参考文献: