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

OPNsense os-acme-clientにコード実行の脆弱性

OPNsenseのプラグインos-acme-clientに、認証済みの利用者がroot権限で任意のコードを実行できる脆弱性が公表されました。導入の有無を確認し、修正版の公開状況を確かめたうえで、管理画面とAPIへの接続元を絞ってください。

CVE-2026-123025 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS v4は9.4で重大度はcriticalですが、悪用にはWebGUIまたはAPIでの認証が必要で、公表は本日のため、まず導入の有無と修正版の状況を確認し、管理画面の接続元を絞る段取りが現実的です。

関係があるか

OPNsenseにos-acme-clientプラグインを入れ、証明書の自動発行や更新をしている組織が対象です。管理画面やAPIに複数の担当者や自動化ツールがアクセスする環境は、とくに確認が必要です。

製品影響を受ける版修正版
OPNsense os-acme-client 4.17.0以前 修正版の版番号は、OPNsenseプラグインの告知とリリースノートで確認してください

確かめ方

  1. 1OPNsenseのシェルで pkg info os-acme-client を実行し、導入の有無と版を確認します。管理画面のSystem、Firmware、Pluginsの一覧でも見られます。
  2. 2Services、ACME Clientの設定に、Google Cloud DNSを使う検証(チャレンジ)が登録されているかを確認します。
  3. 3WebGUIとAPIに、証明書の発行や更新の権限を持つユーザーとAPIキーが何件あるか、棚卸しします。

何が起きたか

OPNsenseの証明書自動化プラグインos-acme-clientに、OSコマンドインジェクションの脆弱性が見つかりました。Google Cloud DNSを使うドメイン検証の処理で、設定値がチェックされないままOSのコマンドに組み込まれ、root権限で任意のコードを実行されるおそれがあります。

問題があるのは、DnsGcloud::prepare() というメソッドです。dns_gcloud_keyの内容を復元したあと、文字列の項目gcloud_accountとgcloud_projectを、検証も無害化もせずにシェルコマンドへ埋め込みます。そのコマンドはLeUtils::run_shell_command() を通じてproc_open() に渡されます。分類はCWE-78で、CVE-2026-123025として2026年11月5日に公表されました。

参照先には、OPNsenseのpluginsリポジトリにあるプルリクエストが挙がっています。

攻撃の流れ

  1. 1

    管理機能に認証

    証明書の発行や更新の権限を持つアカウントで、WebGUIまたはAPIにログインします。

  2. 2

    設定値を細工

    Google Cloud DNS検証の設定に含まれるアカウント名やプロジェクト名の項目に、不正な文字列を入れます。

  3. 3

    証明書処理を実行

    証明書の発行または更新が走ると、その値が検証されないままシェルコマンドに組み込まれます。

  4. 4

    rootでコード実行

    OPNsense上で任意のコードがroot権限で動き、機器の制御を奪われます。

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

どう悪用されるか

悪用にはネットワーク経由の到達性と認証が必要です。WebGUIまたはAPIで、証明書の発行や更新ができる権限を持つ利用者として操作できることが条件になります。攻撃の複雑さは低く、被害者側の操作は要りません。

成立すると、ファイアウォールの機器上でroot権限のコードが動きます。設定の改ざん、通信の盗み見、機器に保存された鍵や認証情報の取得、内部ネットワークへの足がかりづくりなどに悪用される可能性があります。権限が低い利用者が、管理者に近い力を得る経路にもなります。

今すぐやること

  1. 1

    導入の有無と版を確認する

    os-acme-clientが入っているか、4.17.0以前かを確かめます。複数台のOPNsenseを運用している場合は、すべての機器で確認してください。

    pkg info os-acme-client
  2. 2

    修正版の公開状況を告知で確認する

    OPNsenseプラグインの告知とリリースノートで、修正版の版番号と公開状況を確認します。公開されていれば、メンテナンス時間を確保して修正版に更新します。更新前に設定のバックアップを取っておくと、戻すときに困りません。

  3. 3

    管理画面とAPIの接続元を絞る

    WebGUIとAPIがインターネットから見える状態になっていないかを確認し、管理用ネットワークやVPN経由の接続に限定します。

  4. 4

    証明書権限のあるアカウントを整理する

    発行や更新の権限を持つユーザーとAPIキーのうち、使っていないものを無効にし、パスワードの使い回しがないかを確認します。

  5. 5

    不審な操作の跡を調べる

    Google Cloud DNS検証の設定に身に覚えのない変更がないか、想定外の時間帯に証明書の発行や更新が走っていないかを、管理画面の履歴とログで確認します。

修正版がないあいだのつなぎ

修正版をすぐ当てられないときは、WebGUIとAPIへの接続元を管理用ネットワークに限り、証明書の発行や更新の権限を持つアカウントとAPIキーを最小限にします。Google Cloud DNSによる検証を使っていなければ、その設定を削除しておきます。ほかの検証方式で自動更新している場合は、証明書の期限切れを避けるため、ACME全体は止めないでください。プラグインを使っていない機器では、アンインストールすることで影響を避けられます。

背景

OPNsenseはオープンソースのファイアウォール兼ルーターで、拠点の出入り口やVPNの終端に置かれることが多い製品です。os-acme-clientは、Let's Encryptなどの証明書を自動で取得・更新するプラグインで、管理画面の証明書や、リバースプロキシ、VPNで使う証明書の更新を任せている組織もあります。

今回の脆弱性が厄介なのは、証明書の更新というふだんは気にしない自動処理の中にコマンド実行の経路があることです。更新の処理はOSの権限で動くため、管理画面の限られた権限がそのままroot権限につながります。そのため、証明書の担当者だけに与えたアカウントも、機器全体の権限と同じ重さで扱う必要があります。

よくある質問

Q.Google Cloud DNSによる検証を使っていなければ、影響はありませんか。
A.脆弱なコードはGoogle Cloud DNSの検証モジュールにありますが、検証を使っていない構成が安全だと言い切れるかは、OPNsenseプラグインの告知で確認してください。使っていないなら、設定を削除しておくと余計なリスクを抱えずに済みます。
Q.認証が必要なので、急がなくてよいのではありませんか。
A.外部から直接ではないぶん、緊急度はやや下がります。ただ、管理画面がインターネットに公開されている場合や、パスワードの使い回しとAPIキーの漏えいが疑われる場合は、前提が崩れるので優先して対応してください。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

影響パッケージ

種類パッケージ影響を受ける版修正版
OPNsense os-acme-client
4.17.0 以前
—
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

An OS Command Injection vulnerability was discovered in the Google Cloud DNS validation module of the OPNsense os-acme-client plugin through 4.17. The DnsGcloud::prepare() method decodes the dns_gcloud_key model field and directly interpolates the string fields gcloud_account and gcloud_project into a shell command passed to proc_open() via LeUtils::run_shell_command() without any validation or escaping. A remote authenticated user with privileges to issue or renew certificates through the WebGUI/API can achieve arbitrary code execution as root.

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

参照URL

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