Improper Certificate Validation vulnerability in ex-aws exawssns (ExAws.SNS, ExAws.SNS.PublicKeyCache modules) allows Signature Spoofing by Improper Validation.
This vulnerability is associated with program files lib/exaws/sns.ex, lib/exaws/sns/publickeycache.ex and program routines 'Elixir.ExAws.SNS':verify_message/1, 'Elixir.ExAws.SNS.PublicKeyCache':get/1.
'Elixir.ExAws.SNS':verifymessage/1 fetches the signing certificate from the SigningCertURL field of the incoming SNS message without validating that the URL uses HTTPS or that the host matches an AWS-owned SNS certificate domain. An unauthenticated attacker who can POST to an endpoint that calls verifymessage/1 can supply an attacker-controlled SigningCertURL, sign a forged SNS message with their own key, and cause the function to return :ok, completely bypassing SNS signature verification.
This issue affects exawssns: from 2.0.1 before 2.3.5.
The application must expose an HTTP endpoint that calls 'Elixir.ExAws.SNS':verify_message/1 on incoming request bodies.
{
"capec_ids": [
"CAPEC-473"
],
"cpe_ids": [
"cpe:2.3:a:ex_aws_sns_project:ex_aws_sns:*:*:*:*:*:*:*:*"
],
"cwe_ids": [
"CWE-295"
]
}