S3 Encryption Client CVE-2025-14764
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain S3 bucket write access
-
DeliveryCraft rogue EDK decrypting ciphertext to chosen plaintext
-
ExploitUpload replacement instruction file
-
ExecutionVictim client decrypts with rogue EDK
-
ImpactDelivers forged plaintext to application
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Approved algorithm selection
|
| Exploitation Conditions | Exploitation requires three concrete conditions: (1) the victim must configure the S3 Encryption Client for Go to store the encrypted data key in an 'Instruction File' rather than in S3 object metadata - this is the specific non-default feature that disables effective key commitment; (2) the attacker must hold write/upload permission to the target S3 bucket (PR:L) to replace the existing instruction file; and (3) the attacker must be able to construct a rogue EDK that decrypts the existing ciphertext to a desired plaintext (the AT:P attack requirement, grounded in the Invisible Salamanders property of non-committing AEAD). Affected versions are <=v3.1. Limiting factors: default metadata-record storage is not vulnerable, the attacker needs pre-existing bucket write access, and impact is confined to integrity (returning forged plaintext) - no confidentiality or availability loss. |
| Impact | This is a genuine but narrowly-scoped cryptographic integrity flaw, not a high-urgency priority. The vendor CVSS 4.0 vector (6.0, Medium) scores integrity impact only (VI:H) with VC:N and VA:N - confidentiality and availability are untouched - so the 'Information Disclosure' tag is contradicted by the vector itself. Multiple mitigating signals align: EPSS is very low (0.11%, 1st percentile), there is no CISA KEV listing, and no public exploit code was identified. The attack requires both PR:L (write access to the target S3 bucket) and AT:P (a specific attack requirement - the attacker must be able to construct a rogue EDK that decrypts the same ciphertext to chosen plaintext, i.e. the 'Invisible Salamanders'/key-commitment property). It is further gated by a non-default deployment choice: the EDK must be stored in an 'Instruction File' rather than S3 object metadata. The signals are mutually consistent (low EPSS, no KEV, no POC, authenticated/write-gated, integrity-only) and point to a theoretical-to-targeted issue affecting a specific configuration rather than a broadly exploitable one. Confirmed facts: AWS security bulletin AWS-2025-032, GHSA-3g75-q268-r9r6, and fix in v4.0.0 all corroborate the affected-versions (<=3.1) and remediation. |
| Exploit ScenarioDerived | An attacker who already holds write permission to a victim's S3 bucket that uses the S3 Encryption Client for Go in Instruction File mode crafts a rogue encrypted data key and uploads a replacement instruction file. The next time the legitimate application decrypts the underlying object, the client silently uses the attacker's rogue EDK and returns attacker-chosen plaintext instead of the original data. No public exploit code was identified, though the underlying 'Invisible Salamanders' technique is academically documented (eprint 2019/016). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
Forged plaintext can be substituted for legitimate decryption output in the Amazon S3 Encryption Client for Go (versions up to and including v3.1) when an application stores the encrypted data key (EDK) in an external "Instruction File" instead of the S3 object's metadata record. An attacker who holds write/upload permission to the target bucket can replace that instruction file with a rogue EDK that decrypts the same underlying ciphertext into attacker-chosen content, exploiting the "Invisible Salamanders" property of a non-committing AEAD, so later reads by the victim client return valid-looking but forged data; the impact is integrity-only (no confidentiality or availability loss) and the default metadata-record storage path is not vulnerable. Amazon shipped key commitment in v4.0.0 on 2025-12-16, EPSS is only 0.11% (1st percentile), and no public exploit code or confirmed active exploitation (CISA KEV) has been identified at time of analysis.
RemediationAI
Vendor-released patch: Amazon S3 Encryption Client for Go v4.0.0 (released 2025-12-16), which introduces key-committing algorithm suites as the default; upgrade to v4.0.0 or later as the primary fix, following the official Go 3.x-to-4.x migration guide (https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/go-v4-migration.html) and the AWS bulletin AWS-2025-032 (https://aws.amazon.com/security/security-bulletins/AWS-2025-032/). Be aware this is a breaking change: S3EncryptionClientV3 is removed in favor of S3EncryptionClientV4, and custom implementations of CryptographicMaterialsManager and Keyring must be updated to set the new AlgorithmSuite field in GetEncryptionMaterials and the KeyCommitment field in DecryptMaterials/OnDecrypt, or custom code will fail to interoperate. AWS states there are no workarounds, but as a compensating control where immediate upgrade is not possible, stop using the Instruction File feature and store EDKs exclusively in the S3 object metadata record, which is not vulnerable; the trade-off is that metadata-based storage changes object layout and may not suit every multi-key or legacy-message workflow, and it does not retroactively protect objects whose instruction files have already been replaced. Strictly limit S3 bucket write/upload permissions (including PutObject on instruction-file objects) to trusted principals, since the attack requires pre-existing bucket write access; this reduces exposure but does not remove the underlying missing key-commitment property. Note the upstream commit 3e1740ec014e234e6d454291615011122e642b5d is the fix reference, and the code-compatible 3.x minor line can only read, not write, key-committed messages, so it is not a complete substitute for the v4.0.0 upgrade.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in go
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is mapped to CWE-327 (Use of a Broken or Risky Cryptographic Algorithm) and stems from the absence of cryptographic key commitment in the S3 Encryption Client for Go's envelope-encryption design. The client wraps records with an AEAD construction; in a committing scheme the encrypted data key is cryptographically bound to the ciphertext so that only the key used at encryption time can produce a valid plaintext. Older versions of the library do not enforce this binding because multiple EDKs could legitimately be associated with one encrypted object, and when the EDK is written to a separate S3 "Instruction File" object rather than to the S3 object's metadata, that instruction file becomes an independently replaceable artifact. This is the practical realization of the "Invisible Salamanders" attack (eprint.iacr.org/2019/016): a non-committing AEAD lets one ciphertext decrypt under two different keys to two different plaintexts, so an attacker who can craft a colliding EDK and overwrite the instruction file can silently redirect decryption to attacker-controlled content. The CPE/package data identifies the affected Go module as go/github.com/aws/amazon-s3-encryption-client-go/v3, vulnerable below 4.0.0 and fixed in 4.0.0. Per the vendor advisory and release notes, v4.0.0 makes key-committing algorithm suites the default, removes S3EncryptionClientV3 in favor of S3EncryptionClientV4, and requires custom CryptographicMaterialsManager and Keyring implementations to populate the new AlgorithmSuite/KeyCommitment fields; a code-compatible 3.x minor release can read key-committed messages but cannot write them, which is why AWS recommends the major-version upgrade for maximum safety.
Know when AWS 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable S3 but needs bucket write (PR:L) and a non-trivial rogue-EDK construction plus Instruction File config (AC:H); impact is integrity-only (I:H), no confidentiality or availability.
Primary rating from Vendor (ff89ba41-3aa1-4d27-914a-91399e9639e5).
CVSS VectorVendor: ff89ba41-3aa1-4d27-914a-91399e9639e5
DescriptionCVE.org
Missing cryptographic key commitment in the Amazon S3 Encryption Client for Go may allow a user with write access to the S3 bucket to introduce a new EDK that decrypts to different plaintext when the encrypted data key is stored in an "instruction file" instead of S3's metadata record.
To mitigate this issue, upgrade Amazon S3 Encryption Client for Go to version 4.0 or later.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal
Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar
Multiple vulnerabilities in ASTPP 4.0.1 including XSS and command injection in SIP device configuration and plugin manag
Remote code execution in Amazon awslabs postgres-mcp-server before 1.1.7 lets remote actors run arbitrary OS commands on
Remote code execution in AWS AgentCore CLI before v0.14.2 allows authenticated attackers to inject Python code via craft
Denial of service in the aws-smithy-json Rust runtime crate (versions before 0.62.7) lets remote unauthenticated attacke
Denial of service in Amazon's aws-smithy-http-server Rust crate (versions prior to 0.66.5) lets remote unauthenticated a
Argument injection in the AWS Bedrock AgentCore Python SDK before 1.18.1 lets a remote authenticated user run arbitrary
Arbitrary file read in amazon-mq rabbitmq-aws before 0.2.1 allows authenticated remote users to read any file accessible
WAF managed-rule body inspection on AWS Application Load Balancer (ALB) can be bypassed by remote actors who fragment an
WAF inspection bypass in Amazon CloudFront (with AWS WAF enabled) lets remote actors smuggle malicious request bodies pa
A trust boundary enforcement vulnerability in Kiro IDE allows remote attackers to execute arbitrary code when a local us
Vendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server 16.2 | Affected |
NVD
CVE.org
EPSS
GitHub
Exploit-DB