オープンソースのネットワーク監視プラットフォームCactiで新たに公開された脆弱性により、認証済みユーザーがリモートから任意のシステムコマンドを実行でき、監視環境全体が危険にさらされる。
このコマンドインジェクションの脆弱性はバージョン1.2.28までの全バージョンに影響し、CactiのSNMPデバイス設定インターフェースにおける不適切な入力検証に起因する。
この脆弱性は「Cactiプロセスの権限で意図しないコマンド実行につながる可能性がある」と述べたCactiは勧告で。
CactiのSNMPフィールド脆弱性を解説
この脆弱性はCVE-2025-6639に起因し、host.phpは、Cactiの管理者が監視対象デバイスを追加・変更する際にSNMPコミュニティー文字列を処理するコンポーネントである。
脆弱なコードパスは、Cactiがユーザー提供の入力をget_nfilter_request_var()関数を通じて取得するところから始まる。この関数は改行文字、セミコロン、パイプ、バッククォートなどのシェルメタ文字を除去しない。
この見落としによって危険な入力がすでに通過してしまううえ、form_input_validate()を空の正規表現で呼び出しているため、サニタイズが事実上完全に無効化されている。
この二重の不備により、攻撃者はSNMPコミュニティーフィールド内に改行で区切ったシェルコマンドを埋め込める。こうした悪意のあるペイロードは、変更されないままCactiのデータベースに保存される。
その後CactiがSNMPのポーリングや検出処理を実行すると、保存された値を使ってバックエンドのシステムコマンドを組み立てる。
基盤となるコマンドラインユーティリティーは改行文字をコマンドの区切りとして解釈するため、注入された各ペイロードがCactiプロセスの権限で別個のシェルコマンドとして実行される。
概念実証(PoC)エクスプロイトにより、攻撃者がSNMPコミュニティー文字列にBashコマンドを注入し、リバースシェルの起動、設定ファイルの窃取、新たなシステムユーザーの作成、永続的なバックドアの設置を行えることが確認されている。
現実の環境では、Cactiはネットワーク監視ツールにアクセスするため高い権限で実行されていることが多く、悪用に成功すると、攻撃者は監視テレメトリーの改変、悪意のあるバイナリーの設置、信頼されたネットワーク経路を経由した侵入拡大、さらにはCactiサーバーの完全な制御まで可能になるおそれがある。
Cactiのデプロイメントを強化するための重要な手順
Cactiのコマンドインジェクション脆弱性は監視インフラに深刻なリスクをもたらすため、組織は速やかにデプロイメントを強化し、露出を抑える必要がある。
- Cactiをバージョン1.2.29以降に更新して完全に修正する。
- Cactiのデバイス設定インターフェースへのアクセスを信頼できる管理ユーザーに限定する。
- Cactiを非特権サービスアカウントで実行し、デバイス設定の変更を制限する厳格なRBACを適用する。
- SNMPコミュニティー文字列とCactiのデータベースエントリーを監査し、不審または不正な形式の入力がないか確認する。
- WAFまたはサーバー側の入力フィルターを使用して改行文字をブロックし、SNMPフィールド内のシェルメタ文字も遮断する。
- 監視対象をCactiの子プロセスとして、コマンド実行や外部ネットワーク接続に悪用の兆候がないか確認する。
- Cactiサーバーを機密システムから分離し、横展開とデータ窃取のリスクを抑えるため外部接続を制限する。
これらの対策を組み合わせることで、攻撃経路を減らしシステムの完全性を高め、サイバーレジリエンスを構築できる。
この脆弱性は、レガシーおよびオープンソースのネットワーク管理ツールに長年存在する弱点を浮き彫りにしている。管理インターフェースは複雑で高い権限を持つ設定フィールドを処理することが多く、入力検証が機能しなくなると、それらが実行経路に変わってしまう。
脅威アクターがステルス性や永続性、横展開の機会を得るために監視プラットフォームを標的にするなか、このような脆弱性は、強化された管理ワークフローと、あらゆる入力ポイントにおける厳格なサニタイズの必要性を示している。
現代の環境にはゼロトラストの統制が必要だということを明確に示す警告でもある。





