aws / aws-xray-sdk-go

AWS X-Ray SDK for the Go programming language.
Apache License 2.0
276 stars 117 forks source link

Vulnerabilities in aws-sdk-go v1.18.0 #409

Closed dmajano closed 1 year ago

dmajano commented 1 year ago

While I was analyzing my projects I have found two CVE related with github.com/aws/aws-sdk-go@v1.44.114.

CVE-2020-8911: A padding oracle vulnerability exists in the AWS S3 Crypto SDK for GoLang versions prior to V2. The SDK allows users to encrypt files with AES-CBC without computing a Message Authentication Code (MAC), which then allows an attacker who has write access to the target's S3 bucket and can observe whether or not an endpoint with access to the key can decrypt a file, they can reconstruct the plaintext with (on average) 128*length (plaintext) queries to the endpoint, by exploiting CBC's ability to manipulate the bytes of the next block and PKCS5 padding errors. It is recommended to update your SDK to V2 or later, and re-encrypt your files.

CVE-2020-8912: A vulnerability in the in-band key negotiation exists in the AWS S3 Crypto SDK for GoLang versions prior to V2. An attacker with write access to the targeted bucket can change the encryption algorithm of an object in the bucket, which can then allow them to change AES-GCM to AES-CTR. Using this in combination with a decryption oracle can reveal the authentication key used by AES-GCM as decrypting the GMAC tag leaves the authentication key recoverable as an algebraic equation. It is recommended to update your SDK to V2 or later, and re-encrypt your files.

image

willarmiros commented 1 year ago

Hi @dmajano - Both CVE links indicate only versions <1.34.0 are vulnerable, and as you noted we are using v1.44.x. We must depend on the AWS SDK for Go v1 in order to maintain our instrumentation for it, as many customers still use it and it is still in full support mode.

Can you explain more why you think the vulnerability exists in our version of the AWS SDK?

dmajano commented 1 year ago

Hi @dmajano - Both CVE links indicate only versions <1.34.0 are vulnerable, and as you noted we are using v1.44.x. We must depend on the AWS SDK for Go v1 in order to maintain our instrumentation for it, as many customers still use it and it is still in full support mode.

Can you explain more why you think the vulnerability exists in our version of the AWS SDK?

We are using a scanner which use NIST database. Here, these vulnerabilities are marked like fixed in V2 of AWS SDK:

image

https://nvd.nist.gov/vuln/detail/CVE-2020-8912#range-5861906 https://nvd.nist.gov/vuln/detail/CVE-2020-8911#range-5863211

I want to understand, the fix is apparently fixed but some vulns sources, are interpreting the fix version different. I will marked it like false positives for now.

Thanks @willarmiros

willarmiros commented 1 year ago

Closing for now then - let us know if anything new comes up