CactiフレームワークにCritical脆弱性——認証不要のSQLインジェクション攻撃にさらされるリスク

ネットワーク監視フレームワークのCactiに、深刻度の高い複数のセキュリティ脆弱性が相次いで公表されました。バージョン1.2.30以前を対象に、認証不要のSQLインジェクションやローカルファイルインクルージョン(LFI)など、CriticalおよびHighレベルの欠陥が確認されています。

最も深刻な脆弱性はCVE-2026-39893で、graph_view.phpコンポーネントに存在します。リクエスト変数rfilterがサニタイズ処理を一切経ずにRLIKE SQL句へ直接連結されていることが原因です。

Cactiはゲストユーザーによるグラフ閲覧をサポートしているため、ゲストアクセスが有効になっている環境ではこのエンドポイントに認証なしでアクセスできます。つまりゼロクリックでのリモート攻撃が可能な標的となります。

PR #7054にマージされた修正(コミット 891344a5)では、rfilter変数をlib/database.php内の新しいヘルパー関数db_qstr_rlike()を通じて処理するよう変更されています。

この関数は入力値の長さを255文字に制限し、|{}、NULバイトなどの危険なメタ文字を除去したうえで、db_qstr()によるパラメータ化クォートを適用します。

また今回の修正により、RLIKEエンジンへの入力から選択演算子や量指定メタ文字を除去することで、ReDoS(正規表現サービス拒否)への露出リスクも低減されています。

別のCritical評価の脆弱性として、CVE-2026-39955(CVSSスコア9.8)があります。これはgraph_view.php内のFILTER_VALIDATE_REGEXPチェックがアンカーなしで実装されていることに起因します。

この検証バイパスにより、未認証の攻撃者が悪意あるSQLペイロードを注入できる状態となっており、機密性・完全性・可用性のすべてに完全な影響を及ぼします。研究者のdavidkm-ai氏によって発見・報告されたこの問題は、netniVによって調整され、PR #7039で対処されました。

CVE-2026-39951(CVSSはHigh)は、CactiのReports機能におけるgraph_name_regexpパラメーターを通じた蓄積型SQLインジェクションのリスクをもたらします。上記のCritical脆弱性とは異なり、この脆弱性の悪用には低権限の認証(PR:L)が必要なため攻撃面は限定的ですが、機密性への影響は依然として深刻です。

全SQLシンクがdb_qstr_rlike()を使用し、すべてのHTML表示にhtml_escape()が適用されていることが完全監査によって確認されており、PR #7039以外の追加修正は不要と判断されています。

今回の勧告群の締めくくりとして、CVE-2026-39938(CVSSスコア9.8 – Critical)があります。graph_themeパラメーターと安全性の低いRRDtool IPCシリアライゼーションを悪用することで、未認証のローカルファイルインクルージョン(LFI)攻撃がサーバーに対して可能となります。

当初はbasename()を用いた修正が実施されましたが、バイパス可能であることが判明したため、新たなcacti_validate_theme()関数にファイルシステムの許可リストを実装する形で強化されています。

この脆弱性はCWE-22(パストラバーサル)とCWE-78(OSコマンドインジェクション)の両方に該当しており、サーバーの完全性に対して特に危険な脅威となっています。

4件のセキュリティ勧告はいずれも、CactiセキュリティチームのnetniVが研究者らの協力のもと調整・公表したものです。

翻訳元: https://cyberpress.org/critical-cacti-vulnerabilities/

ソース: cyberpress.org