Tuskira AdvisoryNot observedLast updatedNovember 4, 2026

CVE-2026-115731

Puppet Server and OpenVox Server code execution from any signed agent certificate; reaches the CA key, public PoC

CVE-2026-115731 lets a client holding any CA-signed agent certificate run code on Puppet Server or OpenVox Server by sending a crafted report to PUT /puppet/v3/report. Perforce, the CNA, scores it 9.4 on CVSS 4.0. Perforce's description says that if the CA autosigns without strong verification, an unauthenticated network attacker could obtain such a certificate, and OpenVox's advisory says "Code execution as puppet gives access to the CA signing key."

OpenVox's advisory includes a working trigger payload. No exploitation has been reported, and it is not on CISA's KEV. The fixes are OpenVox Server 9.2.0 and 8.18.0 and Puppet Enterprise 2023.8.13, 2025.12.1 and 2026.0.1. OpenVox says Open Source Puppet "will not be receiving security updates."

Vendor
Perforce (Puppet) and OpenVox
Product
Puppet Server, Puppet Enterprise, OpenVox Server
Affected versions
OpenVox Server up to 9.1.0 and 8.17.0; OpenVox Agent up to 9.2.0 and 8.31.1 (OpenVox advisory). Puppet Enterprise 2023.8.0 before 2023.8.13, 2025.0.0 before 2025.12.1, 2026.0.0 before 2026.0.1 (Perforce's CVE record)
Vulnerable component
Report processing on Puppet Server / OpenVox Server, PUT /puppet/v3/report on the agent port (8140 by default)
CVSS
9.4 (Perforce as CNA, CVSS 4.0); NVD has not added its own score
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H (Perforce)
CWE
CWE-502 Deserialization of Untrusted Data; CWE-94 Code Injection (Perforce, on NVD)
Exploitation
Not observed
CISA KEV added
Patch
OpenVox Server 9.2.0 and 8.18.0, OpenVox Agent 9.3.0 and 8.32.0, OpenVoxDB 9.2.0 and 8.18.0; Puppet Enterprise 2023.8.13, 2025.12.1 and 2026.0.1 (Perforce's CVE record). Open Source Puppet receives no fix

Is it reachable for you?

How it works. Agents send a report to the server after each run. OpenVox's advisory says a crafted event in that report is deserialized and "gives direct code execution on the openvox-server," running as the puppet user. Two lines from the advisory matter most: "In configuration with autosign (which is common for enterprise deployment), this is an unauthenticated attack chain," because a certificate can be requested through the client enrollment endpoint, and "Code execution as puppet gives access to the CA signing key." OpenVox credits alain-neodyme.

What's affected.

  • OpenVox Server up to 9.1.0 and 8.17.0, fixed in 9.2.0 and 8.18.0 (OpenVox advisory).
  • OpenVox Agent up to 9.2.0 and 8.31.1, fixed in 9.3.0 and 8.32.0 (OpenVox advisory).
  • OpenVoxDB: Vox Pupuli lists 9.2.0 and 8.18.0 as the versions to update to.
  • Puppet Enterprise 2023.8.0 before 2023.8.13, 2025.0.0 before 2025.12.1 and 2026.0.0 before 2026.0.1, per Perforce's own CVE record as CNA. Perforce's advisory page would not load for us.
  • Open Source Puppet: OpenVox's oss-security notice says the issue affects "all known OpenVox and Puppet versions and implementations," including "any repackaged or bundled usage," and that Puppet "will not be receiving security updates."

The test. An unpatched server is reachable by anyone who can reach its agent port with a signed certificate, or who can get one.

  1. Check the version. rpm -q openvox-server or dpkg -l openvox-server, puppetserver --version on Puppet Server, and the PE version on Puppet Enterprise. Below the fixed versions, the server is in scope.
  2. Check how certificates get signed. puppet config print autosign --section server. true or a broad autosign.conf glob means anyone who can reach the CA can get a certificate, the unauthenticated case OpenVox describes. A policy executable that checks a shared secret or cloud identity narrows it.
  3. Check who can reach port 8140. Test from networks that shouldn't manage nodes, and list every compile server and CA server, not just the primary.
  4. Inventory signed certificates. puppetserver ca list --all. Any valid agent certificate is enough to reach the bug.
  5. Know where the CA key lives. puppet config print cadir --section server. If the CA runs on a server that processes reports, code execution there reaches the key, per the advisory.

Companion: CVE-2026-115732. A certificate-name authorization bypass fixed in the same OpenVox Server and OpenVoxDB releases and Puppet Enterprise builds; OpenVox's advisory gives the example that "a cert issued for evil.target.lab.local will match target.lab.local." Perforce's CVE record says that in Puppet Enterprise it can also grant access to certificate-authority administration and remote command execution on managed nodes. Perforce scores it 9.0 and OpenVox 9.5, both CVSS 4.0. After upgrading, Vox Pupuli advises validating custom auth.conf rules "to ensure that they're still working as you intended."

Compensating controls (test them, don't assume them)

These come from Vox Pupuli's update post. Each works only under the condition at the end of its line.

  • Delivery. Restrict the server so it is reachable only from "the network segments which require access." This only helps if no host inside those segments already holds a valid certificate or can get one.
  • Delivery. "Disable or tighten access to autosign," for example by moving from true or a glob list to policy-based autosigning. This only helps if existing signed certificates are also reviewed, since any signed agent certificate can still reach the bug.
  • Exploitation. In serverless setups, "disable OpenVoxDB access for individual nodes." This only helps if you run serverless OpenVox.
  • Execution. OpenVox publishes standalone patch scripts for older versions, warning they "might or might not apply cleanly on old and outdated versions" and that mitigations "do not necessarily eliminate your risk." This only helps if the script applies cleanly on your exact version and you verify it.

Upgrading to OpenVox Server 9.2.0 or 8.18.0, or Puppet Enterprise 2023.8.13, 2025.12.1 or 2026.0.1, is the only fix.

What to look for in logs

Neither OpenVox nor Perforce has published detection guidance or indicators for CVE-2026-115731. The advisory's proof of concept sends a report to PUT /puppet/v3/report with a crafted __ptype event value; no vendor has published a detection rule based on it.

How Tuskira helps

Tuskira is an agentic cyber defense platform that connects to the 200+ security and IT tools you already run. When a new critical vulnerability lands, Tuskira answers three questions.

Is there a reachable path? For example, whether port 8140 on unpatched Puppet or OpenVox servers is reachable from where it shouldn't be, and whether autosign hands out certificates to anyone who asks.

Would your controls stop it? Tuskira tests the controls you already run, such as your WAF, firewall rules and EDR, against the path.

Can you close the gap now? Quell stages the compensating control change through your existing tools, with your approval, then re-tests to confirm the path is closed.

The vendor patch is the complete fix. Quell reduces exposure and proves your controls work in the meantime.

See how Quell handles emerging threats

FAQ

Am I exposed to CVE-2026-115731?

Yes, if you run OpenVox Server below 9.2.0 or 8.18.0, Puppet Enterprise below 2023.8.13, 2025.12.1 or 2026.0.1, or Open Source Puppet Server, and hosts with, or able to get, a signed agent certificate can reach port 8140.

Is CVE-2026-115731 being exploited?

No exploitation has been reported, and it is not on CISA KEV as of November 4, 2026. A working trigger payload is public in OpenVox's advisory.

Is there a patch?

Yes. OpenVox Server 9.2.0 and 8.18.0, OpenVox Agent 9.3.0 and 8.32.0, and Puppet Enterprise 2023.8.13, 2025.12.1 and 2026.0.1. OpenVox says Open Source Puppet will not get security updates and recommends migrating to OpenVox.

How do I mitigate CVE-2026-115731 without patching?

Limit port 8140 to the segments that need it and tighten autosign, per Vox Pupuli. These reduce exposure but are not a fix.

Updates

Nov 4, 2026. First published. Public trigger payload in OpenVox's advisory; no exploitation reported; not on CISA KEV.

Sources

We publish an advisory when a vulnerability is Critical or on CISA KEV, has one identifiable component to check, and has a public proof of concept or reported exploitation. Advisories are updated as exploitation status changes.