本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
企業のセキュリティ対策Dokploy

「Dokploy」にコマンド注入の脆弱性 メンバー権限でサーバーを乗っ取られ得る

自前のサーバーにアプリを載せる基盤「Dokploy」で、バックアップの設定からOSのコマンドを注入できる脆弱性が「CVE-2026-129433」としてNVDに載った。権限の低いメンバーでも、Docker経由でサーバー全体を乗っ取られ得る。0.31.1で修正済みで、利用者は今のバージョンを確かめて更新する。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

Dokployの公式サイトのカード。黒い背景に、線で描いたクジラのロゴと「Dokploy」の文字が並ぶ
画像: Dokploy

自前のサーバーにアプリを載せる基盤「Dokploy」の開発チームが11月12日にadvisoryで公表した脆弱性が11月14日、「CVE-2026-129433」として米国の脆弱性データベースNVDに載った。動いているDokployのバージョンが0.31.1より前なら、公式の手順で0.31.1以降に更新する。権限の低いメンバーのアカウントでも、バックアップの設定を通じてサーバー全体を乗っ取られ得るからだ。

影響する範囲と深刻度

Dokployは、VercelやHerokuに代わるオープンソースの仕組みとして、自前のサーバーにアプリやデータベースをデプロイする。advisoryによると、Docker Composeで動かすサービスのバックアップを作る処理で、サービス名がそのままシェルのコマンドに組み込まれていた。組織のメンバーがバックアップの設定を作るか直す時に、シェルで特別な意味を持つ記号を含むサービス名を保存できた。

  • 対象: Dokploy(advisoryとNVDの表記では「0.31.1未満」)
  • 修正したバージョン: 0.31.1(11月12日公開)。11月13日には0.31.2も出ている
  • CVE番号: CVE-2026-129433
  • 深刻度: CVSS 3.1で9.9、CVSS 4.0で9.4(NVDに登録した米VulnCheckの評価)。advisoryも9.9でcriticalとした
  • 弱点の種類: CWE-78(OSコマンドの注入)

advisoryは、管理者や所有者でなく、メンバーの権限で足りるとしている。注入したコマンドは、予定したバックアップが次に動いた時に、Dokployのコンテナの中でrootとして実行される。予定の既定は1分ごとだ。標準の導入ではDockerを操作する口(docker.sock)がコンテナに渡されているため、サーバー全体を乗っ取られ得る。環境変数やデプロイ用の鍵、データベースの接続情報も読まれ得るという。

原因は、保存の時にサービス名の文字を確かめず、実行の時にも引用で囲まなかったことにある。advisoryは直し方として、保存の時に使える文字を絞る検査と、実行の時に値を引用で囲む処理の2つを挙げていた。advisoryの公開はNVDへの掲載の2日前で、修正版の公開とほぼ同じ時刻だった。

今のバージョンを確かめる

対象は、Dokployを自分のサーバーに入れて動かしている場合だ。まず組織の中でDokployを動かしているサーバーを洗い出す。バージョンは、管理画面に出るバージョンの表示で確かめるのが確実だ。Dokployは、サーバーの上で「dokploy」という名前のDockerのサービスとして動く。Dockerの一般的なコマンド「docker service ls」でこのサービスのイメージのタグも見られる。今の公式の導入手順のスクリプトは、取得した最新のバージョン番号をタグに使う。ただし、入れた時期や入れ方によってはタグが「latest」などになり、番号は分からない。

0.31.1より前だった場合は、確認に時間をかけず先に更新する。保存した設定が1分ほどで実行され得るからだ。更新の後で、組織のメンバーの一覧と、Composeのサービスのバックアップの設定を見る。advisoryの説明では、注入はバックアップの設定のサービス名を通じて起きる。覚えの無いメンバーや、見慣れない記号を含むサービス名の設定が無いかを確かめる。

0.31.1以降に上げる

修正は0.31.1のリリースに入っている。公式の導入手順には、最新のバージョンに更新するコマンドと、特定のバージョンを指定して更新する方法が載っている。どちらも、Dokployが動いているサーバーの上で実行する。advisoryには、更新のほかの回避策は書かれていない。

修正のプルリクエストは、サービス名のほか、バックアップの保存先の指定などもシェルに渡す前に引用で囲むよう改めた。同じプルリクエストは、このadvisoryを含む11件と、もう1件の一部をまとめて直したと書いている。0.31.1のリリースノートには、メンバーの権限からrootに至るコマンドの注入の修正がほかにも並ぶ。プルリクエストの説明によると、開発チームは修正の前に、手元でこの問題を再現できたことを確かめていた。今回のCVEだけを見て、ほかの修正を後回しにする理由は無い。

悪用の報告はまだ無い

CVE-2026-129433は11月14日の時点で、米サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)の悪用を確認した脆弱性の一覧(KEV)に載っていない。advisoryとNVDにも、悪用の報告は無い。ただし、advisoryには再現の手順と検証用のコードが公開されている。NVDでの分析の状態は「Deferred」(NVDが分析を見送る扱い)で、NVD自身の評価は付いていない。

調べた範囲では使っていない

SAGUSは、会社のリポジトリと開発に使う端末の作業場所を、Dockerfileや設定ファイルを中心に「dokploy」の語で検索し、見つからなかった。検索の対象には、Docker Composeの設定ファイルとサーバーの構成を書くスクリプトも含めた。調べた範囲では、SAGUSはDokployを使っていなかった。

編集部の見方

編集部は、この件の要点は、権限を分けたつもりの設計が、バックアップという裏方の処理で崩れた点にあると見る。メンバーの権限は、管理者より弱い前提で外部の協力者などに渡されがちだ。それでも、保存した設定が1分以内にrootで実行され、サーバー全体に届く。Dokployを使う組織は、バージョンを上げたうえで、メンバーの一覧とバックアップの設定に覚えの無い物が無いかを見たい。ただし、自分ひとりだけが使い、ほかにアカウントを発行していない環境なら、当面の危険は小さい。

出典

に確認(日本時間)

  1. advisory(github.com)
  2. 米国の脆弱性データベースNVD(nvd.nist.gov)
  3. 公式の導入手順(docs.dokploy.com)
  4. 0.31.1のリリース(github.com)
  5. 修正のプルリクエスト(github.com)
  6. KEV(cisa.gov)

この記事をシェア

この記事は役に立ちましたか