{"id":"CVE-2026-115731","kind":"vulnerability","aliases":["CVE-2026-115731"],"related":[],"title":"Puppet Server: crafted report lets an agent certificate run code on the server","description":"Deserialization of untrusted data in the report-processing code of Puppet, as used by Puppet Server, in the affected releases, allows a client that holds any CA-signed agent certificate to execute arbitrary code on the Puppet Server as its service user by submitting a report containing a crafted rich-data type via PUT request. Where the certificate authority autosigns requests without strong verification, an unauthenticated network attacker can obtain such a certificate.","summary":"Puppet Server deserializes untrusted data in its report-processing code, so a crafted rich-data type in a report submitted by PUT request can run arbitrary code. Any client holding a CA-signed agent certificate can exploit it, and an unauthenticated attacker can get such a certificate where the CA autosigns without strong verification.","severity":"critical","cvss":9.4,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"puppet-core","fixed":["9.1.3"],"affected":"unknown (vendor gives no range)","ecosystem":"vendor"}],"ecosystems":[],"tags":["infrastructure","puppet","puppet-server","self-hosted"],"not_affected_if":["autosign-disabled"],"how_to_check":"- Check the installed Puppet / Puppet Core version on the Puppet Server host (e.g. 'puppet --version', 'puppetserver --version') against 9.1.3; Puppet has not published an affected range (unknown), so treat earlier Puppet Core releases as possibly exposed.\n- Check whether the CA autosigns agent certificate requests (the 'autosign' setting in puppet.conf, or an autosign.conf file); autosigning without strong verification lets an unauthenticated attacker obtain an agent certificate.\n- Also check if you run Puppet Enterprise or a standalone Puppet Server: the vendor page read does not say which release fixes it there.","fix":"Update to Puppet Core 9.1.3 (release notes list CVE-2026-115731 as fixed, PA-9473). The notes do not say which Puppet Server version carries the fix; the Puppet Server release notes (latest 9.0.17) do not mention it.","status":"open","published_at":"2026-11-03T21:17:01+00:00","first_seen_at":"2026-11-03T21:19:07+00:00","triaged_at":"2026-11-03T21:20:32+00:00","updated_at":"2026-11-03T21:22:02+00:00","category":"infrastructure","confidence":0.6,"triage":{"at":"2026-11-03T21:20:32Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"Puppet Server: crafted report lets an agent certificate run code on the server","impact":"high","summary":"Puppet Server deserializes untrusted data in its report-processing code, so a crafted rich-data type in a report submitted by PUT request can run arbitrary code. Any client holding a CA-signed agent certificate can exploit it, and an unauthenticated attacker can get such a certificate where the CA autosigns without strong verification.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["puppet","puppet-server","self-hosted","infrastructure"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"Code runs on the Puppet Server as its service user","analyst_note":"Find the affected and fixed Puppet Server release ranges and the vendor advisory; the NVD entry in the sources does not give them.","how_to_check":"- Check the installed Puppet Server version against the affected releases listed in the sources: unknown\n- Check whether the certificate authority autosigns agent certificate requests (`autosign` setting in `puppet.conf` or `autosign.conf`): unknown","plain_action":"","needs_analyst":true,"not_affected_if":["autosign-disabled"],"who_is_affected":"Teams running Puppet Server that accept agent reports over PUT. Exposure is highest where the CA autosigns certificate requests without strong verification, because an unauthenticated network attacker can then obtain a valid agent certificate. Installations that do not autosign and restrict who can request certificates are harder to reach, though the sources do not say how much this reduces risk.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000721,"input_tokens":4171,"output_tokens":608,"severity_before":"critical"},"analyst_status":"done","analyst_note":"Find the affected and fixed Puppet Server release ranges and the vendor advisory; the NVD entry in the sources does not give them.","search":"'-115731':16A,19A '-2026':15A,18A 'affect':107C 'agent':7A,67B,118C 'allow':109C 'arbitrari':58B,122C 'attack':75B,158C 'author':149C 'autosign':84B,150C 'ca':65B,83B,116C 'ca-sign':64B,115C 'certif':8A,68B,80B,119C,148C,163C 'client':61B,111C 'code':10A,41B,59B,97C,123C 'contain':136C 'core':22A 'craft':3A,44B,138C 'cve':14A,17A 'data':35B,47B,91C,141C 'deseri':33B,88C 'execut':121C 'exploit':70B 'get':77B 'hold':62B,113C 'host':30B 'infrastructur':23B 'let':5A 'network':157C 'obtain':160C 'process':40B,96C 'puppet':1A,21A,24B,26B,31B,99C,103C,126C 'puppet-core':20A 'puppet-serv':25B 'put':54B,144C 'releas':108C 'report':4A,39B,51B,95C,135C 'report-process':38B,94C 'request':55B,145C,151C 'rich':46B,140C 'rich-data':45B,139C 'run':9A,57B 'self':29B 'self-host':28B 'server':2A,13A,27B,32B,104C,127C 'servic':130C 'sign':66B,117C 'strong':86B,153C 'submit':52B,133C 'type':48B,142C 'unauthent':74B,156C 'untrust':34B,90C 'use':101C 'user':131C 'verif':87B,154C 'via':143C 'without':85B,152C","nicknames":[],"mitigations":[],"who_affected":"Teams running Puppet Server that accept agent reports over PUT. Exposure is highest where the CA autosigns certificate requests without strong verification, because an unauthenticated network attacker can then obtain a valid agent certificate. Installations that do not autosign and restrict who can request certificates are harder to reach, though the sources do not say how much this reduces risk.","tier":"B","verified":{"fix":{"at":"2026-11-03T21:22:02Z","by":"analyst","doc":"https://help.puppet.com/core/current/content/puppetcore/PuppetReleaseNotes/release_notes_puppet_x-9-1-3.htm","run_id":1567}},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["puppetcore"],"ptokens":["core","puppet"],"labels":["critical","infrastructure","puppet","puppetserver","selfhosted"],"campaign_type":null,"first_public_at":"2026-11-03T21:17:01+00:00","kev":null,"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security@puppet.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-115731","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115731","severity":null,"published_at":"2026-11-03T21:17:01+00:00","modified_at":"2026-11-03T21:17:01+00:00","first_seen_at":"2026-11-03T21:19:07+00:00","fetched_at":"2026-11-03T21:19:07+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-115731:1567","url":null,"severity":null,"published_at":"2026-11-03T21:22:02+00:00","modified_at":"2026-11-03T21:22:02+00:00","first_seen_at":"2026-11-03T21:22:02+00:00","fetched_at":"2026-11-03T21:22:02+00:00","note":"Vendor release notes for Puppet Core 9.1.3 confirm the fix (PA-9473) but give no affected range, no Puppet Server/PE fixed version, no exploit details. NVD page returned nothing via web-cli. Need Puppet's security advisory for ranges."}],"documents":[{"id":60951,"url":"https://help.puppet.com/core/current/content/puppetcore/PuppetReleaseNotes/release_notes_puppet_x-9-1-3.htm","title":"Puppet Core 9.1.3 release notes","kind":"release","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"fix","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}