In-band Key Negotiation Vulnerability in AWS S3 Crypto SDK for GoLang

github.com/aws/aws-sdk-go Updated 02 Oct 2025

Summary

12/12/2024
No i
Low
2.5

CVE-2020-8912: In-band key negotiation issue in AWS S3 Crypto SDK for golang in github.com/aws/aws-sdk-go. Affected versions are not published. No fix is published. How to fix ↓

Also tracked for

The same CVE-2020-8912 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

The AWS S3 Crypto SDK for GoLang, part of the AWS SDK for Go, provides developers with tools to encrypt and decrypt data stored in Amazon S3. This SDK allows for secure data handling by implementing various encryption algorithms. However, vulnerabilities in its key negotiation process can lead to significant security risks, particularly when an attacker has write access to the targeted S3 bucket.

Vulnerability Detail

A vulnerability exists in the in-band key negotiation process of the AWS S3 Crypto SDK for GoLang versions prior to V2. An attacker with write access to a targeted S3 bucket can manipulate the encryption algorithm of an object, switching from AES-GCM to AES-CTR. This change, when combined with a decryption oracle, can expose the authentication key used by AES-GCM, as decrypting the GMAC tag reveals the authentication key through an algebraic equation. This vulnerability can lead to unauthorized access to sensitive data.

How To Fix

No fixed version is published for this vulnerability.

Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →

Workaround

As a temporary workaround, ensure that only trusted users have write access to your S3 buckets. Additionally, consider implementing additional security measures such as monitoring access logs and using IAM policies to restrict permissions.

Conclusion

The in-band key negotiation vulnerability in the AWS S3 Crypto SDK for GoLang poses a significant risk to data security. It is crucial for developers using this SDK to update to version V2 or later to mitigate this risk. Implementing strict access controls and monitoring can also help protect against potential exploitation.

See every vulnerability recorded for github.com/aws/aws-sdk-go →

Share this vulnerability

FAQ

The vulnerability allows an attacker with write access to change the encryption algorithm of objects in an S3 bucket, potentially exposing sensitive data.

You can use the Vulert playground at Vulert Scanner to check if your application is affected by this vulnerability without needing to sign up.

If exploited, this vulnerability can lead to unauthorized access to sensitive data stored in S3, as the authentication key can be revealed.

Yes, updating to version V2 or later of the AWS SDK for Go addresses this vulnerability.

If an immediate update is not possible, restrict write access to your S3 buckets and monitor access logs for any suspicious activity.

Related vulnerabilities

Recent vulnerabilities recorded for github.com/aws/aws-sdk-go.

How To Fix

No fixed version is published for this vulnerability.

Tip — Not sure whether your app is affected? Vulert can check the versions your app actually runs. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback