本文へ移動
English version →
重大 9.8 急ぎ度: 早めに

OpenHands SDKに認証なしのコード実行脆弱性、修正版あり

OpenHands Software Agent SDKのサンドボックスが、既定の設定のままだとネットワークから認証なしで操作されます。DockerWorkspaceまたはApptainer workspaceで起動している開発・検証環境が対象です。1.52.0への更新と、コンテナの公開ポートの確認を進めてください。

CVE-2026-112346 公開 生成 AI で作成
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS v3が9.8で、認証なしにネットワークから実行でき、修正版1.52.0が公開されているため、対象環境は早めに更新するのが妥当です。

関係があるか

DockerWorkspaceまたはApptainer workspaceでサンドボックスを起動し、OpenHands Software Agent SDKを使っているチームが対象です。SDKを組み込んだ社内ツールや他社製品も、内部でこれらのランチャーを使っていれば当てはまります。

製品影響を受ける版直った版
OpenHands Software Agent SDK 1.52.0より前の版(DockerWorkspaceまたはApptainer workspaceを使う構成) 1.52.0

確かめ方

  1. 1依存管理ファイルやロックファイルで、OpenHands Software Agent SDKの版が1.52.0より前かどうかを確認します。
  2. 2自社のコードや設定で、DockerWorkspaceまたはApptainer workspaceを使ってサンドボックスを起動していないかを調べます。
  3. 3稼働中のコンテナのポート公開状況を見て、0.0.0.0で待ち受けているものがないかを確認します。
  4. 4SDKを組み込んだ社内ツールや他社製品を使っている場合は、開発元や提供元にSDKの版を問い合わせます。

何が起きたか

OpenHands Software Agent SDKのサンドボックスで、ネットワーク越しに認証なしでroot権限のシェルコマンドを実行されるおそれがあります。修正版は公開済みです。

原因は既定の設定です。DockerWorkspaceとApptainer workspaceの起動処理が、サンドボックス内のagent serverをすべてのネットワークインターフェース(0.0.0.0)で待ち受けさせます。しかもsession_api_keysが空のまま渡されるため、認証が最初から無効になっています。CWEはCWE-1327(制限のないIPアドレスへのバインド)です。

利用者が設定を誤ったわけではなく、既定の挙動そのものが原因です。対象の版をそのまま使っていれば該当するため、筆者は優先度の高い更新作業として扱ってよいと思っています。

攻撃の流れ

  1. 1

    ポートに到達

    攻撃者が、サンドボックスのコンテナが公開しているポートにネットワークから接続できる状態にあります。

  2. 2

    認証なしで要求

    認証が無効なため、HTTPとWebSocketの要求がそのままagent serverに受け付けられます。

  3. 3

    root権限で実行

    サンドボックス内で、任意のシェルコマンドがroot権限で実行されます。

  4. 4

    情報の持ち出し

    マウントされたワークスペースと、secrets storeの平文のシークレットが読み取られます。

公開されている情報をもとにした流れの例です。

どう悪用されるか

認証は不要です。攻撃者がコンテナの公開ポートにネットワークで到達できれば成立し、利用者の操作も要りません。攻撃の難易度は低いと評価されており、CVSS v3のベクタではAV:N、AC:L、PR:N、UI:Nです。

成功すると、サンドボックスの中でroot権限のコマンドを実行されます。マウントされたワークスペースにあるファイルの読み書きに加え、secrets storeに保存された認証情報などを平文で読まれます。何が保存されているかは環境ごとに異なるため、被害の大きさは各社のワークスペースとシークレットの中身で変わります。

今すぐやること

  1. 1

    修正版に更新する

    OpenHands Software Agent SDKを1.52.0以降に更新します。SDKを組み込んだ社内ツールや他社製品は、提供元に更新の予定を確認します。

  2. 2

    公開ポートの状況を確認する

    サンドボックスのコンテナが、外部から到達できるアドレスでポートを公開していないかを調べます。更新後に起動し直したコンテナでも、同じ確認をもう一度行います。

    docker ps --format '{{.Names}} {{.Ports}}'
  3. 3

    露出していた期間を洗い出す

    対象の版を使っていた期間を整理し、その間にサンドボックスのポートへ不審な接続がなかったかを、ネットワーク機器やホストのログで確認します。

  4. 4

    シークレットの入れ替えを検討する

    外部から到達できる状態だった期間があれば、secrets storeに入れていた認証情報を無効にして、新しいものに替えます。

すぐ更新できないとき

すぐに更新できない場合は、サンドボックスのコンテナの公開ポートに、信頼できる端末や範囲からしか接続できないようにします。ホストのファイアウォールやセキュリティグループで外部からの接続を遮断し、そのあいだはサンドボックスの新規起動を最小限にとどめてください。

背景

OpenHands Software Agent SDKは、AIエージェントにコードを書かせ、シェルを動かし、ファイルを編集させるための開発キットです。エージェントが何を実行するかは事前に読み切れないため、実行はサンドボックスに閉じ込めるのが前提になります。DockerWorkspaceとApptainer workspaceは、そのための隔離環境を立ち上げる仕組みです。

問題のagent serverは、外から指示を受けるサンドボックスの窓口です。ここが認証なしで開いていると、隔離のために作った環境が、そのまま外部からの入口になります。管理用のAPIや内部サービスを、認証なしですべてのインターフェースに公開してしまう設定不備は、CWE-1327が指す典型的な型です。今回の特徴は、利用者が手を加えなくても、既定の起動処理だけでその状態になる点にあります。

まだ分かっていないこと

  • 実際の攻撃で悪用されているかどうかは、公表されていません。VulnCheckのアドバイザリとリリースノートを随時確認してください。
  • 1.52.0で認証がどのように有効になるのか、更新前に作成したコンテナがそのまま安全になるのかは、公表されていません。詳細はGitHubのv1.52.0のリリースと修正コミットで確認してください。
  • DockerWorkspaceとApptainer workspace以外のワークスペースが影響を受けるか、サンドボックスの外へ影響が及ぶかは、公表されていません。

この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。

影響パッケージ

種類パッケージ影響を受ける版直った版
OpenHands OpenHands Software Agent SDK
1.52.0 未満
1.52.0
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

OpenHands Software Agent SDK before 1.52.0 contains an unauthenticated remote code execution vulnerability where the DockerWorkspace and Apptainer workspace launchers bind the sandbox agent server to all network interfaces (0.0.0.0) with an empty session_api_keys list, disabling authentication by default. Attackers who can reach the published container port can send unauthenticated HTTP and WebSocket requests to execute arbitrary shell commands as root in the sandbox, access the mounted workspace, and read plaintext secrets from the secrets store.

出典: CVE.org (CVE Program・cvelistV5) NVD

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく