Am I affected?

type your ex_aws_sns version to check

Description

Improper Certificate Validation vulnerability in ex-aws ex_aws_sns (ExAws.SNS, ExAws.SNS.PublicKeyCache modules) allows Signature Spoofing by Improper Validation.

This vulnerability is associated with program files lib/ex_aws/sns.ex, lib/ex_aws/sns/public_key_cache.ex and program routines 'Elixir.ExAws.SNS':verify_message/1, 'Elixir.ExAws.SNS.PublicKeyCache':get/1.

'Elixir.ExAws.SNS':verify_message/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 verify_message/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 ex_aws_sns: from 2.0.1 before 2.3.5.

Weaknesses & attack patterns

Weakness

CWE-295 · Improper Certificate Validation in catalog → MITRE ↗

Attack patterns

CAPEC-473 · Signature Spoof MITRE ↗

CAPEC-473 Signature Spoofing by Improper Validation

Affected — Hex / ex_aws_sns Hex.pm ↗ Repository ↗

2.0.1 < 2.3.5 affected
every other version: unaffected
cpe cpe:2.3:a:ex_aws_sns_project:ex_aws_sns:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.ExAws.SNS' · 'Elixir.ExAws.SNS.PublicKeyCache'
source files lib/ex_aws/sns.ex · lib/ex_aws/sns/public_key_cache.ex
routines 'Elixir.ExAws.SNS':verify_message/1 · 'Elixir.ExAws.SNS.PublicKeyCache':get/1

Affected — GitHub / ex-aws/ex_aws_sns Repository ↗

a7ec218 < 1853d28 affected
every other version: unaffected
cpe cpe:2.3:a:ex_aws_sns_project:ex_aws_sns:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.ExAws.SNS' · 'Elixir.ExAws.SNS.PublicKeyCache'
source files lib/ex_aws/sns.ex · lib/ex_aws/sns/public_key_cache.ex
routines 'Elixir.ExAws.SNS':verify_message/1 · 'Elixir.ExAws.SNS.PublicKeyCache':get/1

Configurations

The application must expose an HTTP endpoint that calls 'Elixir.ExAws.SNS':verify_message/1 on incoming request bodies.

References

Credits

Peter Ullrich Finder
Bernard Duggan Remediation developer
Jonatan Männchen / EEF Remediation developer Analyst

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
« All CVEs