AWS SDK for Ruby
CVE-2025-14762
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain write access to S3 bucket
-
DeliveryCraft rogue EDK decrypting object to chosen plaintext
-
ExploitUpload replacement instruction file
-
ExecutionVictim app reads object via S3EC
-
ImpactAttacker-chosen plaintext accepted as valid
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Approved algorithm selection
|
| Exploitation Conditions | Three concrete conditions must all hold: (1) the application uses the AWS SDK for Ruby S3 Encryption Client (aws-sdk-s3 gem) at version <= 1.207.0 for client-side encryption; (2) EDKs are stored using the optional 'Instruction File' mode rather than S3 object metadata - this is the specific feature that lacks key commitment; and (3) the attacker already possesses write (PutObject) permission on the target S3 bucket to overwrite the instruction file, plus the ability to construct a rogue EDK that decrypts the existing ciphertext to desired plaintext (CVSS AT:P). Deployments using metadata-stored EDKs, or without an attacker holding bucket write access, are not exploitable. There are no workarounds other than upgrading to 1.208.0 or later. |
| Impact | This is a genuine but low-urgency, highly conditional cryptographic weakness, not a high-priority alarm. The vendor CVSS 4.0 vector (6.0, AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N) correctly scores it as an integrity-only issue (VI:H) with no confidentiality or availability impact - the attacker swaps in a rogue encrypted data key so a victim later decrypts attacker-chosen plaintext. Note AT:P (attack requirement 'present') and PR:L: the attacker must already hold write permission to the S3 bucket and the deployment must use the optional 'Instruction File' EDK-storage mode, plus must craft a rogue EDK that validly decrypts the object - a non-trivial precondition set. EPSS is low at 0.21% (10th percentile), there is no CISA KEV listing, and no public exploit code is identified; the Invisible Salamanders class attack is academically well-documented (eprint.iacr.org/2019/016) but no weaponized PoC against this gem is published. Signals are consistent: moderate CVSS driven by integrity impact, low EPSS, no KEV - this is a real but narrow defense-in-depth fix, prioritized for anyone using S3EC Instruction File mode rather than an emergency. One labeling conflict: the input Tag 'Information Disclosure' contradicts the vector (VC:N, VI:H), so this should be classed as a data-integrity/tampering issue, not disclosure. |
| Exploit ScenarioDerived | An attacker who already has write access to an S3 bucket that stores client-side-encrypted objects using the Ruby S3 Encryption Client in 'Instruction File' mode crafts a rogue encrypted data key that still decrypts the existing ciphertext to a plaintext of their choosing. They upload a replacement instruction file; when the legitimate application next reads the object, S3EC uses the rogue EDK and silently returns the attacker-controlled plaintext. No public exploit code exists, though the underlying 'Invisible Salamanders' technique is published research. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
Incorrect decryption of client-side encrypted S3 objects in AWS SDK for Ruby versions through 1.207.0 allows an authenticated attacker with PutObject permission on the target S3 bucket to replace the encrypted data key (EDK) stored in an S3 instruction file with a rogue EDK that decrypts the same ciphertext to attacker-chosen plaintext. Exploitation requires the application to use the S3 Encryption Client's optional instruction-file mode for EDK storage rather than S3 object metadata; AWS has released a fix in aws-sdk-s3 1.208.0. EPSS is 0.21% (10th percentile) and no public exploit code has been identified at time of analysis, making this a low-urgency, highly conditional cryptographic weakness rather than an immediate threat.
RemediationAI
Upgrade the aws-sdk-s3 gem to version 1.208.0 or later, which introduces key commitment and can both read and write commitment-bound messages; note that 1.208.0 is a new major version, so review for compatibility. The upstream fix is also available via commit b633ba10cd2fbc4cc770b76ab531ed9647654044 (https://github.com/aws/aws-sdk-ruby/commit/b633ba10cd2fbc4cc770b76ab531ed9647654044). AWS states there are no workarounds. As compensating controls if immediate upgrade is not possible: reconfigure applications to store EDKs in S3 object metadata instead of instruction files (this avoids the vulnerable code path but may require code changes and re-encryption of existing objects), and/or strictly limit S3 PutObject permissions on buckets containing client-side encrypted objects to trusted principals only (trade-off: tighter permissions may disrupt legitimate write workflows and does not fully eliminate the risk if an attacker already has write access). Monitor for unexpected or unauthorized instruction-file uploads as a detection measure. See the AWS bulletin and GHSA advisory for full details.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in rubygems
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The AWS SDK for Ruby's S3 Encryption Client implements envelope encryption, where a data key encrypts the object and an encrypted data key (EDK) is stored either in the S3 object's metadata or in a separate instruction file. In affected versions (<= 1.207.0), when EDKs are stored in instruction files, the library does not cryptographically bind the EDK to the ciphertext-a missing key commitment (CWE-327). This enables an 'Invisible Salamanders' attack (eprint 2019/016): because a single ciphertext can be decrypted to different plaintexts under different keys, an attacker who can write to the bucket can overwrite the instruction file with a rogue EDK that decrypts the existing ciphertext to arbitrary plaintext. The CVSS 4.0 vector AV:N/AC:L/AT:P/PR:L/UI:N/VI:H and independent CVSS 3.1 assessment AV:N/AC:H/PR:L/UI:N/I:H reflect that the attack requires specific preconditions (instruction-file mode, bucket write access, ability to craft a rogue EDK) and primarily impacts integrity of decrypted data, not confidentiality or availability.
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
Attacker needs bucket write (PR:L) and must craft a valid rogue EDK under non-default Instruction File mode (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 AWS SDK for Ruby 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 AWS SDK for Ruby to version 1.208.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
Loom for AWS deployments running a version before 1.6.1 with no identity provider configured expose an unauthenticated s
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
Broken access control in the VitaFit cloud API before the 2026-10-30 fix lets any authenticated account holder call POST
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
NVD
CVE.org
EPSS
GitHub
Exploit-DB