Security Vulnerability Report
中文
CVE-2025-64186 CVSS 8.7 HIGH

CVE-2025-64186

Published: 2025-11-12 21:15:54
Last Modified: 2026-02-13 16:57:06

Description

Evervault is a payment security solution. A vulnerability was identified in the `evervault-go` SDK’s attestation verification logic in versions of `evervault-go` prior to 1.3.2 that may allow incomplete documents to pass validation. This may cause the client to trust an enclave operator that does not meet expected integrity guarantees. The exploitability of this issue is limited in Evervault-hosted environments as an attacker would require the pre-requisite ability to serve requests from specific evervault domain names, following from our ACME challenge based TLS certificate acquisition pipeline. The vulnerability primarily affects applications which only check PCR8. Though the efficacy is also reduced for applications that check all PCR values, the impact is largely remediated by checking PCR 0, 1 and 2. The identified issue has been addressed in version 1.3.2 by validating attestation documents before storing in the cache, and replacing the naive equality checks with a new SatisfiedBy check. Those who useevervault-go to attest Enclaves that are hosted outside of Evervault environments and cannot upgrade have two possible workarounds available. Modify the application logic to fail verification if PCR8 is not explicitly present and non-empty and/or add custom pre-validation to reject documents that omit any required PCRs.

CVSS Details

CVSS Score
8.7
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N

Configurations (Affected Products)

cpe:2.3:a:evervault:evervault:*:*:*:*:*:go:*:* - VULNERABLE
evervault-go < 1.3.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// PoC concept - Attestation document with missing PCR values // This demonstrates how incomplete attestation documents bypass validation const forgedAttestation = { // Missing or empty PCR0, PCR1, PCR2 values pcr8: "expected_pcr8_value", // Critical PCRs are missing or null pcr0: null, pcr1: null, pcr2: null, signature: "valid_signature", timestamp: Date.now() }; // Vulnerable validation code (before fix) function vulnerableVerify(attestation) { // Naive equality check - only verifies PCR8 if present if (attestation.pcr8 === expectedPcr8) { return true; // Bypasses if other PCRs are missing } return false; } // The vulnerable SDK would accept this forged attestation // as it only checks for PCR8 presence and value const isValid = vulnerableVerify(forgedAttestation); // isValid becomes true despite missing critical PCR values

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-64186", "sourceIdentifier": "[email protected]", "published": "2025-11-12T21:15:53.727", "lastModified": "2026-02-13T16:57:05.983", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Evervault is a payment security solution. A vulnerability was identified in the `evervault-go` SDK’s attestation verification logic in versions of `evervault-go` prior to 1.3.2 that may allow incomplete documents to pass validation. This may cause the client to trust an enclave operator that does not meet expected integrity guarantees. The exploitability of this issue is limited in Evervault-hosted environments as an attacker would require the pre-requisite ability to serve requests from specific evervault domain names, following from our ACME challenge based TLS certificate acquisition pipeline. The vulnerability primarily affects applications which only check PCR8. Though the efficacy is also reduced for applications that check all PCR values, the impact is largely remediated by checking PCR 0, 1 and 2. The identified issue has been addressed in version 1.3.2 by validating attestation documents before storing in the cache, and replacing the naive equality checks with a new SatisfiedBy check. Those who useevervault-go to attest Enclaves that are hosted outside of Evervault environments and cannot upgrade have two possible workarounds available. Modify the application logic to fail verification if PCR8 is not explicitly present and non-empty and/or add custom pre-validation to reject documents that omit any required PCRs."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N", "baseScore": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 5.8}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-347"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:evervault:evervault:*:*:*:*:*:go:*:*", "versionEndExcluding": "1.3.2", "matchCriteriaId": "4E2CDCE3-4441-41C9-A947-3437A3465C13"}]}]}], "references": [{"url": "https://github.com/evervault/evervault-go/commit/7c824d289bba11ec0bea46a338023f5b128bbb28", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/evervault/evervault-go/pull/48", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/evervault/evervault-go/security/advisories/GHSA-88h9-77c7-p6w4", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://github.com/evervault/evervault-go/security/advisories/GHSA-88h9-77c7-p6w4", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Vendor Advisory"]}]}}