You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"full_implementation": "func AddBodyContentMD5Handler(r *request.Request) {\n\t// if Content-MD5 header is already present, return\n\tif v := r.HTTPRequest.Header.Get(contentMD5Header); len(v) != 0 {\n\t\treturn\n\t}\n\n\t// if S3DisableContentMD5Validation flag is set, return\n\tif aws.BoolValue(r.Config.S3DisableContentMD5Validation) {\n\t\treturn\n\t}\n\n\t// if request is presigned, return\n\tif r.IsPresigned() {\n\t\treturn\n\t}\n\n\t// if body is not seekable, return\n\tif !aws.IsReaderSeekable(r.Body) {\n\t\tif r.Config.Logger != nil {\n\t\t\tr.Config.Logger.Log(fmt.Sprintf(\n\t\t\t\t\"Unable to compute Content-MD5 for unseekable body, S3.%s\",\n\t\t\t\tr.Operation.Name))\n\t\t}\n\t\treturn\n\t}\n\n\th := md5.New()\n\n\tif _, err := aws.CopySeekableBody(h, r.Body); err != nil {\n\t\tr.Error = awserr.New(\"ContentMD5\", \"failed to compute body MD5\", err)\n\t\treturn\n\t}\n\n\t// encode the md5 checksum in base64 and set the request header.\n\tv := base64.StdEncoding.EncodeToString(h.Sum(nil))\n\tr.HTTPRequest.Header.Set(contentMD5Header, v)\n}",
7
+
"vulnerability_info": {
8
+
"FuncName": "crypto/md5.New",
9
+
"Message": "MD5 - RFC 9155 - Deprecating MD5 Signature Hashes in TLS 1.2 and DTLS 1.2. Use MD5 in HMAC is Acceptable But Not Recommended",
"Message": "Deprecated: Legacy PEM encryption as specified in RFC 1423 is insecure by design. Since it does not authenticate the ciphertext, it is vulnerable to padding oracle attacks that can let an attacker recover the plaintext.",
"full_implementation": "func computeKeyMD5(keyHeader, keyMD5Header, key string, r *http.Request) {\n\tif len(key) == 0 {\n\t\t// Backwards compatiablity where user just set the header value instead\n\t\t// of using the API parameter, or setting the header value for an\n\t\t// operation without the parameters modeled.\n\t\tkey = r.Header.Get(keyHeader)\n\t\tif len(key) == 0 {\n\t\t\treturn\n\t\t}\n\n\t\t// In backwards compatiable, the header's value is not base64 encoded,\n\t\t// and needs to be encoded and updated by the SDK's customizations.\n\t\tb64Key := base64.StdEncoding.EncodeToString([]byte(key))\n\t\tr.Header.Set(keyHeader, b64Key)\n\t}\n\n\t// Only update Key's MD5 if not already set.\n\tif len(r.Header.Get(keyMD5Header)) == 0 {\n\t\tsum := md5.Sum([]byte(key))\n\t\tkeyMD5 := base64.StdEncoding.EncodeToString(sum[:])\n\t\tr.Header.Set(keyMD5Header, keyMD5)\n\t}\n}",
115
+
"vulnerability_info": {
116
+
"FuncName": "crypto/md5.Sum",
117
+
"Message": "MD5 - RFC 9155 - Deprecating MD5 Signature Hashes in TLS 1.2 and DTLS 1.2. Use MD5 in HMAC is Acceptable But Not Recommended",
"summary": "github.com/aws/aws-sdk-go/service/s3/s3crypto is an AWS SDK for the Go programming language.\nAffected versions of this package are vulnerable to Use of a Broken or Risky Cryptographic Algorithm. 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.",
0 commit comments