Skip to content

Commit 4b5ad6b

Browse files
jasnowpostmodern
authored andcommitted
GHSA SYNC: 1 brand new advisory
1 parent c5a81fb commit 4b5ad6b

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

gems/aws-sdk-s3/CVE-2025-14762.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
gem: aws-sdk-s3
3+
cve: 2025-14762
4+
ghsa: 2xgq-q749-89fq
5+
url: https://github.com/aws/aws-sdk-ruby/security/advisories/GHSA-2xgq-q749-89fq
6+
title: AWS SDK for Ruby's S3 Encryption Client has a Key Commitment Issue
7+
date: 2025-12-18
8+
description: |
9+
## Summary
10+
11+
S3 Encryption Client for Ruby is an open-source client-side encryption
12+
library used to facilitate writing and reading encrypted records to S3.
13+
14+
When the encrypted data key (EDK) is stored in an "Instruction File"
15+
instead of S3's metadata record, the EDK is exposed to an "Invisible
16+
Salamanders" attack (https://eprint.iacr.org/2019/016), which could
17+
allow the EDK to be replaced with a new key.
18+
19+
## Impact
20+
21+
### Background - Key Commitment
22+
23+
There is a cryptographic property whereby under certain conditions,
24+
a single ciphertext can be decrypted into 2 different plaintexts by
25+
using different encryption keys. To address this issue, strong
26+
encryption schemes use what is known as "key commitment", a process
27+
by which an encrypted message can only be decrypted by one key;
28+
the key used to originally encrypt the message.
29+
30+
In older versions of S3EC, when customers are also using a feature
31+
called "Instruction File" to store EDKs, key commitment is not
32+
implemented because multiple EDKs could be associated to an underlying
33+
encrypted message object. For such customers an attack that leverages
34+
the lack of key commitment is possible. A bad actor would need two
35+
things to leverage this issue:
36+
(i) the ability to create a separate, rogue, EDK that will also
37+
decrypt the underlying object to produce desired plaintext, and
38+
(ii) permission to upload a new instruction file to the S3 bucket
39+
to replace the existing instruction file placed there by the
40+
user using the S3C. Any future attempt to decrypt the
41+
underlying encrypted message with the S3EC will unwittingly
42+
use the rogue EDK to produce a valid plaintext message.
43+
44+
### Impacted versions: <= 1.207.0
45+
46+
## Patches
47+
48+
We are introducing the concept of "key commitment\" to S3EC where the
49+
EDK is cryptographically bound to the ciphertext in order to address
50+
this issue. In order to maintain compatibility for in-flight messages
51+
we are releasing the fix in two versions. A code-compatible minor
52+
version that can read messages with key-commitment but not write them,
53+
and a new major version that can both read and write messages with
54+
key-commitment. For maximum safety customers are asked to upgrade to
55+
the latest major version: 1.208.0 or later.
56+
57+
### Workarounds
58+
59+
There are no workarounds, please upgrade to the suggested version of S3EC.
60+
61+
### References
62+
63+
If customers have any questions or comments about this advisory,
64+
AWS SDK for Ruby asks that they contact AWS Security via the issue
65+
reporting page or directly via email to
66+
[aws-security@amazon.com](mailto:aws-security@amazon.com).
67+
Please do not create a public GitHub issue.
68+
cvss_v3: 5.3
69+
cvss_v4: 6.0
70+
patched_versions:
71+
- ">= 1.208.0"
72+
related:
73+
url:
74+
- https://nvd.nist.gov/vuln/detail/CVE-2025-14762
75+
- https://rubygems.org/gems/aws-sdk-s3/versions/1.208.0
76+
- https://github.com/aws/aws-sdk-ruby/security/advisories/GHSA-2xgq-q749-89fq
77+
- https://github.com/aws/aws-sdk-ruby/commit/b633ba10cd2fbc4cc770b76ab531ed9647654044
78+
- https://aws.amazon.com/security/security-bulletins/AWS-2025-032
79+
- https://github.com/advisories/GHSA-2xgq-q749-89fq

0 commit comments

Comments
 (0)