重大なコマンドインジェクション脆弱性(CVE-2026-27728)がOneUptimeで発見されました。OneUptimeはオンラインサービスの監視・管理を行うプラットフォームです。
この欠陥により、認証されたユーザーはProbeサーバー上で任意のオペレーティングシステムコマンドを実行でき、システム完全乗っ取りのリスクが高まります。
10.0.7より前のバージョンを使用している組織は、直ちにパッチを適用することをお勧めします。
コマンドインジェクション脆弱性
SentinelOneによると、脆弱性はOneUptime Probe Serverコンポーネント内のNetworkPathMonitor.performTraceroute()関数に存在します。
この関数はネットワークトレースルート操作を処理し、ユーザーが制御可能な入力、特にモニターの設定からの宛先フィールドを受け入れます。

根本原因は、アプリケーションがこの入力をどのように処理するかにあります。脆弱なコードはNode.jsのchild_processモジュールのexec()関数を使用してシェルコマンドを実行します。
exec()はシェル環境内でコマンドを実行するため、;、|、&、$()、バッククォートなどのシェルメタ文字を解釈します。
これにより、攻撃者は意図されたトレースルート操作から逃れて、独自の悪意あるコマンドを注入できます。
意図された機能はユーザーに監視エンドポイントの設定のみを許可しますが、この欠陥により、認証されたプロジェクトユーザー(権限が限定されている場合でも)は、基盤となるProbeサーバー上で完全なリモートコード実行(RCE)を達成できます。
この脆弱性を悪用するには、攻撃者はプロジェクトユーザーとして低レベルの認証が必要です。
彼らは、宛先フィールドがシェルメタ文字とそれに続く任意のコマンドを含む悪意あるモニター設定を作成できます。
例えば、example.com; cat /etc/passwdまたは$(malicious_command)を注入すると、トレースルートと一緒に注入されたコマンドが実行されます。
Probeサーバーがこのモニターを処理するとき、注入されたコマンドはProbeサーバープロセスと同じ権限で実行されます。
これはサーバーの完全な侵害につながる可能性があり、攻撃者が機密データを流出させたり、組織のインフラストラクチャ内を横方向に移動したりできます。
OneUptimeはバージョン10.0.7でこの問題に対処しました。セキュリティパッチは脆弱なexec()関数をexecFile()に置き換えます。
exec()とは異なり、execFile()は指定されたファイルを直接実行し、シェルを生成するのではなく引数を配列として渡します。
これはシェルメタ文字の解釈を防ぎ、コマンドインジェクションベクトルを効果的に排除します。
緩和のための推奨事項
CVE-2026-27728から保護するために、組織は以下の手順を実施する必要があります:
- 直ちにパッチを適用:安全な
execFile()関数と宛先検証を実装するために、OneUptimeをバージョン10.0.7以降にアップグレードしてください。 - 設定を監査:特殊文字を含む疑わしい宛先値がないか、既存のモニター設定を確認してください。
- システムを監視:Probeサーバー上での異常なプロセス生成、予期しないネットワーク接続、または許可されていないファイルシステム変更に注意してください。
- 回避策を適用:直ちのパッチが不可能な場合は、Probeサーバーを隔離し、プロジェクトユーザーの権限を信頼できる個人に制限し、サーバーへのネットワークアクセスを制限してください。
翻訳元: https://gbhackers.com/oneuptime-command-injection-vulnerability/