Vulnerability

OPNsense os-acme-client Command Injection (CVE-2026-123025)

An OS command injection in the Google Cloud DNS validation module of the OPNsense os-acme-client plugin.

CVE ID
CVE-2026-123025
CVSS
9.4 Critical (CVSS v4.0, MITRE as CNA; NVD lists it as a secondary source); no CVSS 3.1 score in the record or NVD
Affected product
os-acme-client plugin through 4.17.0, per the CVE record
Exploited
Unknown
Published
5 November 2026 (CVE record and NVD); fixed in plugin release 4.18 on 3 November 2026

In short

CVE-2026-123025 is an OS command injection in the Google Cloud DNS validation module of the OPNsense os-acme-client plugin. An authenticated user who can issue or renew certificates can run commands as root. The CVE record scores it CVSS 4.0 9.4 Critical, and plugin release 4.18 fixes it.

Profile MapVulnerability
  1. CVECVE-2026-123025
  2. ProductOPNsense os-acme-client plugin through 4.17.0, per the CVE record
  3. Fix Steps5actions listed

What it allows

CVE-2026-123025 is an OS command injection in the Google Cloud DNS validation module of the OPNsense os-acme-client plugin. The CVE record says the DnsGcloud::prepare() method decodes the dns_gcloud_key model field. It then places the string fields gcloud_account and gcloud_project straight into a shell command that proc_open() runs through LeUtils::run_shell_command().

The record says that no validation or escaping happens on the way. A remote authenticated user who may issue or renew certificates through the WebGUI or API can reach arbitrary code execution as root. The weakness is filed as CWE-78.

How the Fix in 4.18 Works

The OPNsense plugins repository fixed the flaw in pull request 5873, merged on 3 November 2026 as plugin release 4.18. The plugin changelog lists it as a command injection in Google Cloud DNS validation, reported by a researcher using the handle cppghoul.

The diff changes five gcloud commands in DnsGcloud.php. Each value now goes through Shell::exec_safe as a %s argument instead of being pasted into the command string. The CVE record names only the account and project fields, but the change also covers the configuration name and key file arguments.

Who Can Exploit It

The CVSS 4.0 vector sets privileges required to Low and user interaction to None. The attacker therefore needs an account, but no victim has to click anything. Attack vector is Network, because the WebGUI and the API are the entry points.

The record does not say whether the right to issue or renew certificates is separate from full administration. We recommend treating every account that holds it as able to reach root on the firewall until the plugin is updated. Our least privilege entry explains why such rights should stay narrow.

What NVD and CISA KEV Say

NVD published the entry on 5 November 2026 and lists it as Received, so NVD has not analysed it yet. The CVE record came out the same day, with MITRE as the CNA. CISA's KEV catalog, version 2026.11.04, does not list the CVE.

Our remote code execution glossary entry explains what root-level command execution gives an attacker. Our Dameware post on authenticated command injection shows the same bug class in another product.

Who is affected

The CVE record lists the os-acme-client plugin for OPNsense on FreeBSD, in versions up to and including 4.17.0. NVD copies the same range from the CNA. The record names no fixed version, so 4.18 comes from the pull request and the plugin changelog.

The 4.18 changelog also carries a breaking change. The Selfhost DNS API now needs an API key, and credentials must be entered again. Anyone who validates certificates through that method should plan the re-entry during the update.

The record does not say whether the Google Cloud DNS method has to be configured for a firewall to be exposed. We recommend updating either way, because the record lists every version through 4.17. Our vulnerability management guide covers how to track a plugin rollout across many firewalls.

Timeline

  1. 3 Nov 2026

    OPNsense merges pull request 5873, which releases os-acme-client 4.18 with the command injection fix.

  2. 5 Nov 2026

    MITRE publishes the CVE record. NVD publishes its entry and lists it as Received.

What to do

  1. Update os-acme-client to 4.18 or Later

    Release 4.18 fixes the Google Cloud DNS validation module. Update through the OPNsense plugin manager and read the changelog first.

  2. Review Who Can Issue or Renew Certificates

    The record ties the flaw to accounts with that right in the WebGUI or API. We recommend listing those accounts and API keys and removing what is not needed.

  3. Inspect Saved Google Cloud DNS Validation Settings

    We recommend checking the gcloud_account and gcloud_project values for shell characters such as semicolons, backticks or $( ) sequences. Unexpected values point to tampering.

  4. Limit Access to the WebGUI and API

    Keep the management interface on a trusted network or behind a VPN. This lowers who can reach the vulnerable function before you update.

  5. Plan the Selfhost Credential Re-Entry

    Release 4.18 requires an API key for the Selfhost DNS API. Prepare the key before the update if you use that method.

Questions

Which os-acme-client versions does CVE-2026-123025 affect?

The CVE record lists versions up to and including 4.17.0. The plugin changelog shows the fix in 4.18.

Does the attacker need to be logged in?

Yes. The record describes a remote authenticated user with the privilege to issue or renew certificates through the WebGUI or API. The CVSS vector sets privileges required to Low.

Why is the CVSS 4.0 score 9.4?

The vector rates network access, low complexity and high impact on confidentiality, integrity and availability, for both the vulnerable and the subsequent system. Command execution as root explains the high impact values.

Is there a CVSS 3.1 score?

No. Neither the CVE record nor NVD gives a CVSS 3.1 score. The only score is the CVSS 4.0 base score of 9.4 from the MITRE CNA.

In our research

  1. Dameware CVE-2026-28336: Authenticated Command Injection Fixed in 2026.3.1 November 2026
  2. Expired SSL Certificates: How a Lapsed Cert Becomes an Attack Vector July 2026

Sources

  1. CVE-2026-123025 Record CVE Program / MITRE CNA
  2. CVE-2026-123025 NVD
  3. security/acme-client: release 4.18 (pull request 5873) OPNsense plugins
  4. acme-client plugin changelog OPNsense plugins
  5. Known Exploited Vulnerabilities Catalog CISA