OneUptime プラットフォームの脆弱性 CVE-2026-27728 が FIX:システムの完全乗っ取りの恐れ

OneUptime Command Injection Vulnerability Poses Major Risk of Full System Takeover

2026/03/02 gbhackers — オンライン・サービスの監視/管理プラットフォーム OneUptime に、深刻なコマンド・インジェクションの脆弱性 CVE-2026-27728 が発見された。この脆弱性を悪用する認証済みユーザーは、Probe サーバ上で任意のオペレーティング・システム・コマンドを実行し、システム全体の乗っ取りリスクを引き起こすことが可能である。OneUptime のバージョン 10.0.7 未満を使用しているユーザー組織は、直ちにパッチを適用する必要がある。

コマンド・インジェクション脆弱性

SentinelOne によると、この脆弱性は OneUptime Probe Server コンポーネント内の NetworkPathMonitor.performTraceroute() 関数に存在する。

この関数は、ネットワーク・トレースルート処理を行い、モニター設定のデスティネーション・フィールドなど、ユーザー制御入力を受け取る設計となっている。

Vulnerability Details (Source: SentinelOne)
Vulnerability Details (Source: SentinelOne)

根本的な原因は、ユーザー入力の処理方法にある。脆弱なコードは Node.js の child_process モジュールに含まれる exec() 関数を用いて、シェルコマンドを生成してしまう。

exec() 関数は、シェル環境内でコマンドを実行するため、”;, |, &, $()” や バッククォートなどのシェルメタ文字を解釈する。この欠陥を突く攻撃者は、トレースルート処理からエスケープし、悪意のコマンド注入を可能にする。

本来であれば、監視対象エンドポイントの設定のみが許可される設計となっている。しかし、この欠陥の悪用により、限定的な権限しか持たないプロジェクト・ユーザーであっても、Probe サーバ上での完全なリモートコード実行 (RCE) を達成できる。

ただし、この攻撃には、プロジェクト・ユーザーとしての低権限認証が必要である。

攻撃者はディスティネーション・フィールドに対して、シェルメタ文字を含む悪意の値を設定する。たとえば、”example.com; cat /etc/passwd” や “$(malicious_command)” などを挿入することで、トレースルートと同時に任意のコマンド実行が可能になる。

対象となるモニターを Probe サーバが処理すると、注入されたコマンドが Probe プロセスと同一の権限で実行される。結果として、サーバの完全な侵害が生じ、機密データの外部への送信や、組織内インフラへのラテラル・ムーブメントが引き起こされる恐れがある。

すでに OneUptime は、バージョン 10.0.7 をリリースし、この問題に対処している。この修正では、脆弱な exec() 関数が、execFile() に置き換えられている。

この execFile() はシェルを生成せず、指定ファイルを直接実行する。引数を配列として渡すため、シェルメタ文字は解釈されない。それにより、コマンド・インジェクションの経路が排除される。

緩和における推奨事項

脆弱性 CVE-2026-27728 への対策として、以下を実施する必要がある。

  • Patch Immediately:OneUptime を 10.0.7 以降へとアップグレードする。安全な execFile() 実装およびディスティネーション入力検証が適用される。
  • Audit Configurations:既存モニター設定を確認し、特殊文字を含む不審なディスティネーション値の有無を精査する。
  • Monitor Systems:Probe サーバ上での異常プロセスの生成や、想定外ネットワーク接続、未承認ファイル変更を監視する。
  • Apply Workarounds:迅速なパッチ適用が困難な場合には、Probe サーバを分離する。プロジェクト・ユーザー権限を信頼済みユーザーだけに限定し、サーバへのネットワーク・アクセスを制限する。