Summary
CVE-2026-53424 is an Authentication Bypass by Capture-replay vulnerability (CWE-294) in Samly, the Elixir library used to add SAML Service Provider authentication to Plug/Phoenix applications. The flaw allows an attacker in possession of a previously issued, valid SAML assertion (SAMLResponse) to replay it and repeatedly establish authenticated sessions as the assertion’s subject. The issue carries a CVSS v4.0 base score of 9.1 (Critical) and affects all published versions of Samly from v0.3.0 onward.
Technical details
- Root cause:
Samly.Helper.decode_idp_auth_resp/3(inlib/samly/helper.ex) callsesaml_sp:validate_assertion/2from the underlyingesamllibrary. This arity uses a no-op duplicate/replay detector by default. esamldoes provide avalidate_assertion/3arity that accepts aDuplicateFuncallback to enforce one-time use of bearer assertions, but Samly never invokes this arity and exposes no configuration option for applications to supply their own duplicate-detection logic.- As a result, the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be consumed only once is not enforced anywhere in the request path.
- Trigger conditions: An attacker needs to obtain the raw bytes of a legitimate
SAMLResponse— e.g., from network capture, browser history, proxy/server logs, or a referrer leak — for a session that has not yet passed itsNotOnOrAfterexpiry. - Attack vector: Network. The attacker resubmits the identical, unmodified
SAMLResponseto the Samly SP endpoint; no user interaction or elevated privileges are required, though the attacker must be in possession of the captured assertion (attack requirements: present). - Impact: Each replay of the captured assertion re-establishes a valid authenticated session as the assertion’s subject, allowing full impersonation/account takeover of the affected user for as long as the assertion remains within its validity window. Confidentiality and integrity impact are both rated High; there is no direct availability impact.
Affected software
samly(Hex package): v0.3.0 and all later published versionsdropbox/samly(GitHub): commit8a5bb1b4a4753d05470da2036323477f63cfdf4cand all later commitshandnot2/samly(GitHub fork): commit8a5bb1b4a4753d05470da2036323477f63cfdf4cand all later commits
Severity
- CVSS v4.0 Base Score: 9.1 (Critical)
- Vector:
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - A CVSS v3.1 vector has not been published for this CVE by the assigning CNA (ErlangEcosystem Foundation / EEF) as of publication; only the v4.0 score above is available in the official CVE record.
Mitigation and recommended actions
- Immediate: As of publication, no patched Samly release addressing this issue has been identified in the official CVE record or vendor advisory. Security teams should monitor the Samly Hex package and the
dropbox/samlyandhandnot2/samlyGitHub repositories for a fixed release and upgrade as soon as one is available. - If no patch is available:
- Shorten the
NotOnOrAftervalidity window issued by your Identity Provider for SAML assertions consumed by Samly, to minimize the time window in which a captured assertion can be replayed. - Ensure all traffic to the Samly SP endpoint is transported over TLS to reduce the risk of network capture of
SAMLResponsevalues. - Audit and lock down access to logs, proxies, and browser history/referrer data that could contain raw
SAMLResponsevalues, and avoid logging full SAML request/response bodies. - Where feasible, front the Samly SP endpoint with a custom validation layer that tracks consumed assertion IDs (e.g., the
InResponseTo/assertion ID) and rejects duplicates, replicating the one-time-use enforcement thatesaml‘svalidate_assertion/3DuplicateFunwould otherwise provide. - Monitor authentication logs for multiple sessions being established from the same SAML assertion identifier or from anomalous source IPs/user agents in short succession.
- Shorten the

