Skip to main content

S3 Encryption Client CVE-2025-14764

MEDIUM
Use of a Broken or Risky Cryptographic Algorithm (CWE-327)
2025-12-17 ff89ba41-3aa1-4d27-914a-91399e9639e5
6.0
CVSS 4.0 · Vendor: ff89ba41-3aa1-4d27-914a-91399e9639e5
View

Attack ChainAIDerived

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

  1. Access
    Obtain S3 bucket write access
  2. Delivery
    Craft rogue EDK decrypting ciphertext to chosen plaintext
  3. Exploit
    Upload replacement instruction file
  4. Execution
    Victim client decrypts with rogue EDK
  5. Impact
    Delivers 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).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

go github.com/aws/amazon-s3-encryption-client-go no fix
go github.com/aws/amazon-s3-encryption-client-go/v3 fix: 4.0.0
go github.com/aws/amazon-s3-encryption-client-go/v4 fix: 4.0.0

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

Vendor (ff89ba41-3aa1-4d27-914a-91399e9639e5) PRIMARY 6.0 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

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

Primary rating from Vendor (ff89ba41-3aa1-4d27-914a-91399e9639e5).

CVSS VectorVendor: ff89ba41-3aa1-4d27-914a-91399e9639e5

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

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

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Low
niche AWS Go client-side encryption library, only Instruction File users affected
Data Quality
4 sources
Confidence: Medium

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 Yes
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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

More in AWS

View all
CVE-2026-27702 CRITICAL POC
9.9 Feb 25

Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal

CVE-2025-64709 CRITICAL POC
9.9 Nov 13

Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar

CVE-2020-37153 CRITICAL POC
9.8 Feb 11

Multiple vulnerabilities in ASTPP 4.0.1 including XSS and command injection in SIP device configuration and plugin manag

CVE-2026-87911 CRITICAL POC
9.0 Sep 09

Remote code execution in Amazon awslabs postgres-mcp-server before 1.1.7 lets remote actors run arbitrary OS commands on

CVE-2026-11393 HIGH POC
8.8 Jun 08

Remote code execution in AWS AgentCore CLI before v0.14.2 allows authenticated attackers to inject Python code via craft

CVE-2026-18140 HIGH POC
8.7 Jul 30

Denial of service in the aws-smithy-json Rust runtime crate (versions before 0.62.7) lets remote unauthenticated attacke

CVE-2026-16756 HIGH POC
8.7 Jul 23

Denial of service in Amazon's aws-smithy-http-server Rust crate (versions prior to 0.66.5) lets remote unauthenticated a

CVE-2026-16796 HIGH POC
8.4 Jul 23

Argument injection in the AWS Bedrock AgentCore Python SDK before 1.18.1 lets a remote authenticated user run arbitrary

CVE-2026-9133 HIGH POC
8.3 May 20

Arbitrary file read in amazon-mq rabbitmq-aws before 0.2.1 allows authenticated remote users to read any file accessible

CVE-2026-13763 HIGH POC
7.9 Jun 29

WAF managed-rule body inspection on AWS Application Load Balancer (ALB) can be bypassed by remote actors who fragment an

CVE-2026-13762 HIGH POC
7.9 Jun 29

WAF inspection bypass in Amazon CloudFront (with AWS WAF enabled) lets remote actors smuggle malicious request bodies pa

CVE-2026-4295 HIGH POC
7.8 Mar 17

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

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