Skip to main content

Puppet resource_api CVE-2026-8804

| EUVDEUVD-2026-41516 MEDIUM
Cleartext Storage in a File or on Disk (CWE-313)
2026-07-03 Perforce GHSA-rh7m-r3xm-v5xg
6.7
CVSS 4.0 · Vendor: Perforce
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain high-privilege local access to Puppet agent host
  2. Delivery
    Identify resource_api-backed resource types managing sensitive parameters
  3. Exploit
    Locate agent transaction state cache on filesystem
  4. Execution
    Read cleartext credential values from cache
  5. Impact
    Use extracted credentials for lateral movement to managed services

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V14 - Data Protection File/disk data protection
Exploitation Conditions

Exploitation requires high-privilege local access to the Puppet agent host with sufficient filesystem permissions to read the agent's transaction state cache directory. Critically, the vulnerability only manifests when custom or third-party resource types are implemented using the Puppet resource_api AND those types declare one or more parameters with the sensitive: true flag - resource types built on Puppet's older native type API are unaffected. Standard Puppet built-in types (file, package, service, user, etc.) do not use resource_api and are not impacted. The CVSS PR:H rating confirms the attacker must already possess elevated local privileges, limiting exploitation to insiders, already-compromised hosts, or attackers who have achieved prior local access. Exploitation is not remotely triggerable and does not affect default Puppet configurations that use only built-in types.

Impact

The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:H/UI:N/VC:H) correctly characterizes this as a local, high-privilege issue. An attacker must already hold high-privilege or root-level local access on the Puppet agent host to reach the cache directory, which substantially limits the exploitable population. The VC:H rating is justified given that exposed credentials (passwords, tokens) could enable lateral movement to systems Puppet manages. No EPSS data was provided, no CISA KEV listing exists, and no public exploit code has been identified - collectively these signals indicate low active exploitation pressure at time of analysis. The real-world priority is moderate: organizations using resource_api-backed custom types that manage secrets are meaningfully exposed, while those using only built-in Puppet types are unaffected. The vendor score of 6.7 is appropriate; this is not a fire-drill emergency but warrants prompt patching in sensitive environments.

Exploit ScenarioDerived

An attacker with existing high-privilege or root-level local access to a Puppet agent node navigates to the agent's transaction state cache directory and reads the cached catalog or state file, extracting passwords or API tokens that were managed by resource_api-backed resource types. The recovered credentials are then used to authenticate to downstream services - databases, cloud providers, or other infrastructure - that Puppet manages on that node. No public exploit or automated tooling exists; this requires manual filesystem inspection.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 03, 2026

Cleartext storage of sensitive parameters in Puppet's resource_api module (versions 1.5.0-1.9.1 and 2.0.0) causes passwords and other credential values to persist unmasked in the Puppet agent's local transaction state cache. The sensitive flag - intended to prevent exactly this exposure - is silently dropped during resource_api parameter processing, meaning any resource type built on this API and declaring sensitive parameters leaks those values to the cache filesystem. No public exploit exists and this is not listed in CISA KEV, but the confidentiality impact is high for environments where Puppet manages secrets such as database passwords or API tokens.

RemediationAI

Upgrade to puppet resource_api 1.9.2 (for the 1.x line) or 2.0.1 (for the 2.x line), which are bundled with Puppet Core 8.20.0 and Puppet Enterprise 2023.8.10 or PE 2025.11.0 respectively. Full details are at https://portal.perforce.com/s/cve/a91Qi000003511lIAA/cve20268804-cleartext-storage-of-sensitive-information-for-puppet-resource-api. As a compensating control prior to patching, tighten filesystem permissions on the Puppet agent cache directory to restrict read access exclusively to the puppet service account and root, reducing the number of local users who can extract the cached values; note this does not prevent the cleartext write, only limits who can read it. After patching, rotate any credentials managed by resource_api-backed resource types that declared sensitive parameters, as those values may have been cached in cleartext during the exposure window.

Affected VersionsENISA

Puppet Enterprise 2023.8.0 ≤2023.8.9
Puppet Core 8.0.0 ≤8.10.0
Puppet Enterprise 2025.0.0 ≤2025.10.0
Puppet Core 8.11.0 ≤8.19.0

Affected Packages

euvd puppet_core no fix
euvd puppet_enterprise no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The Puppet resource_api is a Ruby gem providing a modern interface for authoring Puppet resource types. When a resource type schema declares a parameter with sensitive: true, Puppet is expected to wrap the value in a Puppet::Pops::Types::PSensitiveType::Sensitive object, which suppresses the value from appearing in logs, reports, and state caches. CVE-2026-8804 (CWE-313: Cleartext Storage of Sensitive Information) is a flag-propagation failure: the resource_api module drops the sensitive wrapper during its internal processing pipeline, allowing raw parameter values to be written unredacted into the agent's local transaction state cache (typically under /opt/puppetlabs/puppet/cache/ on Linux). This affects only resource types implemented via the resource_api interface; Puppet's older built-in type system is not impacted. Affected CPEs are cpe:2.3:a:perforce:puppet_core and cpe:2.3:a:perforce:puppet_enterprise, covering Puppet Core 8.x and Puppet Enterprise 2023.8.x and 2025.x.

Know when Puppet Core gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Perforce) PRIMARY 6.7 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:L
vuln.today AI 4.4 MEDIUM

Local filesystem read of cache requires high-privilege access; only confidentiality is impacted - no integrity or availability impact from this flaw alone.

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N
4.0 AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 4.4 MEDIUM

Primary rating from Vendor (Perforce).

CVSS VectorVendor: Perforce

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
Low

DescriptionCVE.org

Puppet resource_api (shipped in Puppet Core 8.x and Puppet Enterprise 2023.8.x and 2025.x) does not preserve the sensitive flag on parameters defined via the resource-api, causing values such as passwords to be stored in cleartext in the agent's local transaction state cache. Affected versions of the resource_api module include all versions between 1.5.0 - 1.9.1 and 2.0.0 The issue was fixed in puppet resource_api 1.9.2 and 2.0.1 released with Puppet Core 8.20.0 and PE 2023.8.10 & PE 2025.11.0.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Medium
common in enterprise infrastructure automation, not ubiquitous
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy