CVE-2025-14762: 
Ruby vulnerability analysis and mitigation

Overview

CVE-2025-14762 is a cryptographic key commitment vulnerability in the AWS SDK for Ruby's S3 Encryption Client (S3EC) that allows a low-privileged attacker with write access to an S3 bucket to introduce a rogue Encrypted Data Key (EDK) that decrypts to different plaintext — an attack known as "Invisible Salamanders." The vulnerability affects all versions of the aws-sdk-s3 RubyGems package up to and including 1.207.0. It was disclosed on December 17, 2025, by AWS Security as part of a broader bulletin (AWS-2025-032) covering similar key commitment issues across multiple AWS SDK languages. The CVSS v3.1 base score is 5.3 (Medium) and the CVSS v4.0 base score is 6.0 (Medium) (AWS Security Bulletin, GitHub Advisory).

Technical details

The root cause is classified as CWE-327 (Use of a Broken or Risky Cryptographic Algorithm): older versions of S3EC do not implement key commitment when the EDK is stored in an "Instruction File" rather than S3's object metadata record. Without key commitment, a single ciphertext can be decrypted to two different plaintexts using two different keys — a property exploited by the "Invisible Salamanders" attack (described in https://eprint.iacr.org/2019/016). Exploitation requires two preconditions: (1) the attacker must be able to craft a rogue EDK that decrypts the underlying ciphertext to attacker-controlled plaintext, and (2) the attacker must have S3 write permissions to replace the existing instruction file with one containing the rogue EDK. Subsequent decryption by legitimate clients will silently use the rogue EDK and produce the attacker-substituted plaintext (GitHub Advisory, AWS Security Bulletin).

Impact

Successful exploitation compromises data integrity: legitimate decryption operations will silently produce attacker-controlled plaintext instead of the original encrypted content, without any error or warning to the application. Confidentiality is not directly impacted (the attacker does not gain access to the original plaintext), and availability is unaffected. The attack is particularly insidious because it is transparent to the decrypting party, potentially enabling data manipulation, fraud, or security control bypass in applications that rely on the integrity of S3-encrypted objects (GitHub Advisory, AWS Security Bulletin).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure (Feedly). The EPSS score is approximately 0.018% (1st percentile), indicating a very low probability of near-term exploitation. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires low privileges (S3 write access) but also specific deployment conditions — namely, the use of the "Instruction File" EDK storage mode rather than the default S3 metadata approach — which limits the attack surface.

Exploitation steps

  1. Identify target configuration: Confirm that the target application uses the AWS SDK for Ruby (aws-sdk-s3 <= 1.207.0) with the S3 Encryption Client configured to store EDKs in "Instruction Files" rather than S3 object metadata.
  2. Obtain S3 write access: Acquire low-privileged AWS credentials with s3:PutObject permission on the target bucket (e.g., via compromised IAM credentials, overly permissive bucket policies, or insider access).
  3. Craft a rogue EDK: Using knowledge of the "Invisible Salamanders" technique (https://eprint.iacr.org/2019/016), construct a rogue EDK that, when used to decrypt the existing ciphertext, produces attacker-desired plaintext instead of the original plaintext.
  4. Replace the instruction file: Upload a new instruction file to the S3 bucket that references the rogue EDK, overwriting the legitimate instruction file associated with the target encrypted object.
  5. Trigger victim decryption: Wait for or induce the legitimate application to decrypt the object using S3EC; the client will silently use the rogue EDK and receive the attacker-substituted plaintext, with no integrity error raised (GitHub Advisory, AWS Security Bulletin).

Indicators of compromise

  • S3 Access Logs: Unexpected PutObject API calls targeting instruction files (objects with the .instruction suffix or similar naming convention) from unfamiliar IAM principals or source IPs.
  • S3 Object Versioning: Sudden replacement or new version of an instruction file object in a bucket where such changes are infrequent; review S3 object version history for instruction files.
  • CloudTrail Logs: PutObject events on instruction file keys from IAM entities that do not normally write to those paths; cross-reference with expected application behavior.
  • Application Behavior: Decryption operations returning unexpected or altered plaintext content without raising exceptions, particularly in applications using S3EC with instruction file EDK storage.

Mitigation and workarounds

AWS has released a fix in aws-sdk-s3 version 1.208.0, which introduces cryptographic key commitment so that the EDK is cryptographically bound to the ciphertext. AWS is releasing the fix in two stages: a code-compatible minor version that can read key-commitment messages but not write them, and a new major version that supports both reading and writing with key commitment. There are no known workarounds — upgrading to version 1.208.0 or later is the only remediation. Additionally, organizations should review and restrict S3 bucket write permissions, particularly for instruction file objects, and audit existing bucket configurations for unexpected instruction file modifications (AWS Security Bulletin, GitHub Advisory).

Community reactions

AWS published a coordinated security bulletin (AWS-2025-032) on December 17, 2025, covering key commitment issues across six AWS SDK languages simultaneously, indicating a systematic internal security review of S3 encryption clients. The advisory references the academic "Invisible Salamanders" paper (https://eprint.iacr.org/2019/016), demonstrating alignment with cryptographic research. Community discussion was noted on Mastodon (infosec.exchange) shortly after disclosure, and the vulnerability was picked up by security aggregators including RubySec, Tenable Nessus, and Qualys within days of publication (AWS Security Bulletin, GitHub Advisory).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Ubuntu

Unknown

bionic (esm-apps)

ruby-aws-sdk

Unknown

devel

ruby-aws-sdk

Unknown

focal (esm-apps)

ruby-aws-sdk

Unknown

jammy

ruby-aws-sdk

Unknown

jammy (esm-apps)

ruby-aws-sdk

Unknown

noble

ruby-aws-sdk

Unknown

noble (esm-apps)

ruby-aws-sdk

Unknown

resolute

ruby-aws-sdk

Unknown

Source: This report was generated using AI

Related Ruby vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-110264CRITICAL10
  • Ruby logoRuby
  • rubygem-rdoc
NoYesOct 22, 2026
GHSA-h7x6-9mqf-vgmxHIGH8.2
  • Ruby logoRuby
  • avo
NoYesOct 22, 2026
GHSA-x65r-p6hf-94hvMEDIUM6.5
  • Ruby logoRuby
  • avo
NoYesOct 22, 2026
GHSA-58rx-96gf-w92xMEDIUM6.1
  • Ruby logoRuby
  • ransack
NoYesOct 25, 2026
CVE-2026-63183LOWN/A
  • Ruby logoRuby
  • omniauth
NoNoOct 22, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management