Search

Find a vulnerability

Search criteria Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.

    6 vulnerabilities found for samly by dropbox

    CVE-2026-53425 (GCVE-0-2026-53425)

    Vulnerability from nvd – Published: 2026-08-20 17:26 – Updated: 2026-08-20 18:38
    VLAI
    Title
    Missing InResponseTo validation in Samly allows acceptance of unsolicited SAML responses
    Summary
    Insufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested. Samly.SPHandler.validate_authresp/3 in lib/samly/sp_handler.ex validates a SAML response for the SP-initiated flow by comparing only the RelayState value, the IdP identifier, and the presence of a target URL held in the session. It never compares SubjectConfirmationData/@InResponseTo against the ID of the AuthnRequest the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose InResponseTo does not match a request it made. The underlying esaml library checks status, signature, recipient, audience, and staleness, but likewise never inspects InResponseTo, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a RelayState matching the victim's session; the assertion signature itself remains intact, so this is not a signature-forgery issue. This issue affects samly: from 0.3.0 onward.
    CWE
    • CWE-345 - Insufficient Verification of Data Authenticity
    Assigner
    References
    Impacted products
    Vendor Product Version
    dropbox samly Affected: 0.3.0 , < * (semver)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    dropbox samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    handnot2 samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.SPHandler\u0027"
              ],
              "packageName": "samly",
              "packageURL": "pkg:hex/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/sp_handler.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.SPHandler\u0027:consume_signin_response/1"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "0.3.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.SPHandler\u0027"
              ],
              "packageName": "dropbox/samly",
              "packageURL": "pkg:github/dropbox/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/sp_handler.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.SPHandler\u0027:consume_signin_response/1"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.SPHandler\u0027"
              ],
              "packageName": "handnot2/samly",
              "packageURL": "pkg:github/handnot2/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/sp_handler.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.SPHandler\u0027:consume_signin_response/1"
                }
              ],
              "repo": "https://github.com/handnot2/samly",
              "vendor": "handnot2",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Mark Madsen"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInsufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSamly.SPHandler.validate_authresp/3\u003c/code\u003e in \u003ccode\u003elib/samly/sp_handler.ex\u003c/code\u003e validates a SAML response for the SP-initiated flow by comparing only the \u003ccode\u003eRelayState\u003c/code\u003e value, the IdP identifier, and the presence of a target URL held in the session. It never compares \u003ccode\u003eSubjectConfirmationData/@InResponseTo\u003c/code\u003e against the ID of the \u003ccode\u003eAuthnRequest\u003c/code\u003e the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose \u003ccode\u003eInResponseTo\u003c/code\u003e does not match a request it made. The underlying \u003ccode\u003eesaml\u003c/code\u003e library checks status, signature, recipient, audience, and staleness, but likewise never inspects \u003ccode\u003eInResponseTo\u003c/code\u003e, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a \u003ccode\u003eRelayState\u003c/code\u003e matching the victim\u0027s session; the assertion signature itself remains intact, so this is not a signature-forgery issue.\u003c/p\u003e\n\u003cp\u003eThis issue affects samly: from 0.3.0 onward.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Insufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested.\n\n`Samly.SPHandler.validate_authresp/3` in `lib/samly/sp_handler.ex` validates a SAML response for the SP-initiated flow by comparing only the `RelayState` value, the IdP identifier, and the presence of a target URL held in the session. It never compares `SubjectConfirmationData/@InResponseTo` against the ID of the `AuthnRequest` the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose `InResponseTo` does not match a request it made. The underlying `esaml` library checks status, signature, recipient, audience, and staleness, but likewise never inspects `InResponseTo`, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a `RelayState` matching the victim\u0027s session; the assertion signature itself remains intact, so this is not a signature-forgery issue.\n\nThis issue affects samly: from 0.3.0 onward."
                }
              ],
              "value": "Insufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested.\n\nSamly.SPHandler.validate_authresp/3 in lib/samly/sp_handler.ex validates a SAML response for the SP-initiated flow by comparing only the RelayState value, the IdP identifier, and the presence of a target URL held in the session. It never compares SubjectConfirmationData/@InResponseTo against the ID of the AuthnRequest the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose InResponseTo does not match a request it made. The underlying esaml library checks status, signature, recipient, audience, and staleness, but likewise never inspects InResponseTo, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a RelayState matching the victim\u0027s session; the assertion signature itself remains intact, so this is not a signature-forgery issue.\n\nThis issue affects samly: from 0.3.0 onward."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 7.6,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-345",
                  "description": "CWE-345 Insufficient Verification of Data Authenticity",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-20T18:38:13.727Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "related",
                "third-party-advisory"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-53425.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-53425"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Missing InResponseTo validation in Samly allows acceptance of unsolicited SAML responses"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-53425",
        "datePublished": "2026-08-20T17:26:35.537Z",
        "dateReserved": "2026-06-09T11:01:47.529Z",
        "dateUpdated": "2026-08-20T18:38:13.727Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-53424 (GCVE-0-2026-53424)

    Vulnerability from nvd – Published: 2026-08-20 17:27 – Updated: 2026-08-20 18:37
    VLAI
    Title
    Missing one-time-use enforcement in Samly allows replay of SAML bearer assertions
    Summary
    Authentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it. Samly.Helper.decode_idp_auth_resp/3 in lib/samly/helper.ex calls esaml_sp:validate_assertion/2, whose default duplicate detector is a no-op. The /3 arity accepting a DuplicateFun exists in esaml and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid SAMLResponse obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion's NotOnOrAfter passes, each time establishing a session as the assertion's subject. This issue affects samly: from 0.3.0 onward.
    CWE
    • CWE-294 - Authentication Bypass by Capture-replay
    Assigner
    References
    Impacted products
    Vendor Product Version
    dropbox samly Affected: 0.3.0 , < * (semver)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    dropbox samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    handnot2 samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.Helper\u0027"
              ],
              "packageName": "samly",
              "packageURL": "pkg:hex/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/helper.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.Helper\u0027:decode_idp_auth_resp/3"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "0.3.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.Helper\u0027"
              ],
              "packageName": "dropbox/samly",
              "packageURL": "pkg:github/dropbox/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/helper.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.Helper\u0027:decode_idp_auth_resp/3"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.Helper\u0027"
              ],
              "packageName": "handnot2/samly",
              "packageURL": "pkg:github/handnot2/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/helper.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.Helper\u0027:decode_idp_auth_resp/3"
                }
              ],
              "repo": "https://github.com/handnot2/samly",
              "vendor": "handnot2",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Mark Madsen"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAuthentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSamly.Helper.decode_idp_auth_resp/3\u003c/code\u003e in \u003ccode\u003elib/samly/helper.ex\u003c/code\u003e calls \u003ccode\u003eesaml_sp:validate_assertion/2\u003c/code\u003e, whose default duplicate detector is a no-op. The \u003ccode\u003e/3\u003c/code\u003e arity accepting a \u003ccode\u003eDuplicateFun\u003c/code\u003e exists in \u003ccode\u003eesaml\u003c/code\u003e and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid \u003ccode\u003eSAMLResponse\u003c/code\u003e obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion\u0027s \u003ccode\u003eNotOnOrAfter\u003c/code\u003e passes, each time establishing a session as the assertion\u0027s subject.\u003c/p\u003e\n\u003cp\u003eThis issue affects samly: from 0.3.0 onward.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Authentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it.\n\n`Samly.Helper.decode_idp_auth_resp/3` in `lib/samly/helper.ex` calls `esaml_sp:validate_assertion/2`, whose default duplicate detector is a no-op. The `/3` arity accepting a `DuplicateFun` exists in `esaml` and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid `SAMLResponse` obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion\u0027s `NotOnOrAfter` passes, each time establishing a session as the assertion\u0027s subject.\n\nThis issue affects samly: from 0.3.0 onward."
                }
              ],
              "value": "Authentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it.\n\nSamly.Helper.decode_idp_auth_resp/3 in lib/samly/helper.ex calls esaml_sp:validate_assertion/2, whose default duplicate detector is a no-op. The /3 arity accepting a DuplicateFun exists in esaml and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid SAMLResponse obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion\u0027s NotOnOrAfter passes, each time establishing a session as the assertion\u0027s subject.\n\nThis issue affects samly: from 0.3.0 onward."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-60",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-60 Reusing Session IDs (aka Session Replay)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 9.1,
                "baseSeverity": "CRITICAL",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-294",
                  "description": "CWE-294 Authentication Bypass by Capture-replay",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-20T18:37:24.439Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "related",
                "third-party-advisory"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-53424.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-53424"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Missing one-time-use enforcement in Samly allows replay of SAML bearer assertions"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-53424",
        "datePublished": "2026-08-20T17:27:11.115Z",
        "dateReserved": "2026-06-09T11:01:47.529Z",
        "dateUpdated": "2026-08-20T18:37:24.439Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2024-25718 (GCVE-0-2024-25718)

    Vulnerability from nvd – Published: 2024-02-11 00:00 – Updated: 2025-04-24 15:45
    VLAI
    Summary
    In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2024-08-01 18:06 UTC
    CWE
    • n/a
    • CWE-400 - Uncontrolled Resource Consumption
    Impacted products
    Vendor Product Version
    samly elixr Affected: 0 , < 1.4.0 (custom)
        cpe:2.3:a:samly:elixr:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "affected": [
              {
                "cpes": [
                  "cpe:2.3:a:samly:elixr:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unknown",
                "product": "elixr",
                "vendor": "samly",
                "versions": [
                  {
                    "lessThan": "1.4.0",
                    "status": "affected",
                    "version": "0",
                    "versionType": "custom"
                  }
                ]
              }
            ],
            "metrics": [
              {
                "cvssV3_1": {
                  "attackComplexity": "LOW",
                  "attackVector": "NETWORK",
                  "availabilityImpact": "NONE",
                  "baseScore": 9.1,
                  "baseSeverity": "CRITICAL",
                  "confidentialityImpact": "HIGH",
                  "integrityImpact": "HIGH",
                  "privilegesRequired": "NONE",
                  "scope": "UNCHANGED",
                  "userInteraction": "NONE",
                  "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                  "version": "3.1"
                }
              },
              {
                "other": {
                  "content": {
                    "id": "CVE-2024-25718",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-08-01T18:06:21.342589Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "problemTypes": [
              {
                "descriptions": [
                  {
                    "cweId": "CWE-400",
                    "description": "CWE-400 Uncontrolled Resource Consumption",
                    "lang": "en",
                    "type": "CWE"
                  }
                ]
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2025-04-24T15:45:22.426Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          },
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-01T23:52:05.515Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://hex.pm/packages/samly"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/handnot2/samly"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/dropbox/samly"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://diff.hex.pm/diff/samly/1.3.0..1.4.0"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/dropbox/samly/pull/13"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/dropbox/samly/pull/13/commits/812b5c3ad076dc9c9334c1a560c8e6470607d1eb"
              }
            ],
            "title": "CVE Program Container"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "n/a",
              "vendor": "n/a",
              "versions": [
                {
                  "status": "affected",
                  "version": "n/a"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry."
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "description": "n/a",
                  "lang": "en",
                  "type": "text"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2024-02-11T04:21:13.844Z",
            "orgId": "8254265b-2729-46b6-b9e3-3dfca2d5bfca",
            "shortName": "mitre"
          },
          "references": [
            {
              "url": "https://hex.pm/packages/samly"
            },
            {
              "url": "https://github.com/handnot2/samly"
            },
            {
              "url": "https://github.com/dropbox/samly"
            },
            {
              "url": "https://diff.hex.pm/diff/samly/1.3.0..1.4.0"
            },
            {
              "url": "https://github.com/dropbox/samly/pull/13"
            },
            {
              "url": "https://github.com/dropbox/samly/pull/13/commits/812b5c3ad076dc9c9334c1a560c8e6470607d1eb"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "8254265b-2729-46b6-b9e3-3dfca2d5bfca",
        "assignerShortName": "mitre",
        "cveId": "CVE-2024-25718",
        "datePublished": "2024-02-11T00:00:00.000Z",
        "dateReserved": "2024-02-11T00:00:00.000Z",
        "dateUpdated": "2025-04-24T15:45:22.426Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }

    CVE-2026-53424 (GCVE-0-2026-53424)

    Vulnerability from cvelistv5 – Published: 2026-08-20 17:27 – Updated: 2026-08-20 18:37
    VLAI
    Title
    Missing one-time-use enforcement in Samly allows replay of SAML bearer assertions
    Summary
    Authentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it. Samly.Helper.decode_idp_auth_resp/3 in lib/samly/helper.ex calls esaml_sp:validate_assertion/2, whose default duplicate detector is a no-op. The /3 arity accepting a DuplicateFun exists in esaml and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid SAMLResponse obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion's NotOnOrAfter passes, each time establishing a session as the assertion's subject. This issue affects samly: from 0.3.0 onward.
    CWE
    • CWE-294 - Authentication Bypass by Capture-replay
    Assigner
    References
    Impacted products
    Vendor Product Version
    dropbox samly Affected: 0.3.0 , < * (semver)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    dropbox samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    handnot2 samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.Helper\u0027"
              ],
              "packageName": "samly",
              "packageURL": "pkg:hex/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/helper.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.Helper\u0027:decode_idp_auth_resp/3"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "0.3.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.Helper\u0027"
              ],
              "packageName": "dropbox/samly",
              "packageURL": "pkg:github/dropbox/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/helper.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.Helper\u0027:decode_idp_auth_resp/3"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.Helper\u0027"
              ],
              "packageName": "handnot2/samly",
              "packageURL": "pkg:github/handnot2/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/helper.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.Helper\u0027:decode_idp_auth_resp/3"
                }
              ],
              "repo": "https://github.com/handnot2/samly",
              "vendor": "handnot2",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Mark Madsen"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAuthentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSamly.Helper.decode_idp_auth_resp/3\u003c/code\u003e in \u003ccode\u003elib/samly/helper.ex\u003c/code\u003e calls \u003ccode\u003eesaml_sp:validate_assertion/2\u003c/code\u003e, whose default duplicate detector is a no-op. The \u003ccode\u003e/3\u003c/code\u003e arity accepting a \u003ccode\u003eDuplicateFun\u003c/code\u003e exists in \u003ccode\u003eesaml\u003c/code\u003e and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid \u003ccode\u003eSAMLResponse\u003c/code\u003e obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion\u0027s \u003ccode\u003eNotOnOrAfter\u003c/code\u003e passes, each time establishing a session as the assertion\u0027s subject.\u003c/p\u003e\n\u003cp\u003eThis issue affects samly: from 0.3.0 onward.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Authentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it.\n\n`Samly.Helper.decode_idp_auth_resp/3` in `lib/samly/helper.ex` calls `esaml_sp:validate_assertion/2`, whose default duplicate detector is a no-op. The `/3` arity accepting a `DuplicateFun` exists in `esaml` and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid `SAMLResponse` obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion\u0027s `NotOnOrAfter` passes, each time establishing a session as the assertion\u0027s subject.\n\nThis issue affects samly: from 0.3.0 onward."
                }
              ],
              "value": "Authentication Bypass by Capture-replay vulnerability in dropbox samly allows an attacker to authenticate as the subject of a captured SAML assertion by resubmitting it.\n\nSamly.Helper.decode_idp_auth_resp/3 in lib/samly/helper.ex calls esaml_sp:validate_assertion/2, whose default duplicate detector is a no-op. The /3 arity accepting a DuplicateFun exists in esaml and implements the check, but Samly never calls it and offers no configuration to supply one, so the SAML 2.0 Web Browser SSO Profile requirement that a bearer assertion be used once is unenforced. An attacker holding a valid SAMLResponse obtained from the network, from browser history, or from logs can submit the identical bytes repeatedly until the assertion\u0027s NotOnOrAfter passes, each time establishing a session as the assertion\u0027s subject.\n\nThis issue affects samly: from 0.3.0 onward."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-60",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-60 Reusing Session IDs (aka Session Replay)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 9.1,
                "baseSeverity": "CRITICAL",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-294",
                  "description": "CWE-294 Authentication Bypass by Capture-replay",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-20T18:37:24.439Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "related",
                "third-party-advisory"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-53424.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-53424"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Missing one-time-use enforcement in Samly allows replay of SAML bearer assertions"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-53424",
        "datePublished": "2026-08-20T17:27:11.115Z",
        "dateReserved": "2026-06-09T11:01:47.529Z",
        "dateUpdated": "2026-08-20T18:37:24.439Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-53425 (GCVE-0-2026-53425)

    Vulnerability from cvelistv5 – Published: 2026-08-20 17:26 – Updated: 2026-08-20 18:38
    VLAI
    Title
    Missing InResponseTo validation in Samly allows acceptance of unsolicited SAML responses
    Summary
    Insufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested. Samly.SPHandler.validate_authresp/3 in lib/samly/sp_handler.ex validates a SAML response for the SP-initiated flow by comparing only the RelayState value, the IdP identifier, and the presence of a target URL held in the session. It never compares SubjectConfirmationData/@InResponseTo against the ID of the AuthnRequest the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose InResponseTo does not match a request it made. The underlying esaml library checks status, signature, recipient, audience, and staleness, but likewise never inspects InResponseTo, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a RelayState matching the victim's session; the assertion signature itself remains intact, so this is not a signature-forgery issue. This issue affects samly: from 0.3.0 onward.
    CWE
    • CWE-345 - Insufficient Verification of Data Authenticity
    Assigner
    References
    Impacted products
    Vendor Product Version
    dropbox samly Affected: 0.3.0 , < * (semver)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    dropbox samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    handnot2 samly Affected: 8a5bb1b4a4753d05470da2036323477f63cfdf4c , < * (git)
        cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.SPHandler\u0027"
              ],
              "packageName": "samly",
              "packageURL": "pkg:hex/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/sp_handler.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.SPHandler\u0027:consume_signin_response/1"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "0.3.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.SPHandler\u0027"
              ],
              "packageName": "dropbox/samly",
              "packageURL": "pkg:github/dropbox/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/sp_handler.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.SPHandler\u0027:consume_signin_response/1"
                }
              ],
              "repo": "https://github.com/dropbox/samly",
              "vendor": "dropbox",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Samly.SPHandler\u0027"
              ],
              "packageName": "handnot2/samly",
              "packageURL": "pkg:github/handnot2/samly",
              "product": "samly",
              "programFiles": [
                "lib/samly/sp_handler.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Samly.SPHandler\u0027:consume_signin_response/1"
                }
              ],
              "repo": "https://github.com/handnot2/samly",
              "vendor": "handnot2",
              "versions": [
                {
                  "lessThan": "*",
                  "status": "affected",
                  "version": "8a5bb1b4a4753d05470da2036323477f63cfdf4c",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dropbox:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:handnot2:samly:*:*:*:*:*:*:*:*",
                      "versionStartIncluding": "0.3.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Mark Madsen"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eInsufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSamly.SPHandler.validate_authresp/3\u003c/code\u003e in \u003ccode\u003elib/samly/sp_handler.ex\u003c/code\u003e validates a SAML response for the SP-initiated flow by comparing only the \u003ccode\u003eRelayState\u003c/code\u003e value, the IdP identifier, and the presence of a target URL held in the session. It never compares \u003ccode\u003eSubjectConfirmationData/@InResponseTo\u003c/code\u003e against the ID of the \u003ccode\u003eAuthnRequest\u003c/code\u003e the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose \u003ccode\u003eInResponseTo\u003c/code\u003e does not match a request it made. The underlying \u003ccode\u003eesaml\u003c/code\u003e library checks status, signature, recipient, audience, and staleness, but likewise never inspects \u003ccode\u003eInResponseTo\u003c/code\u003e, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a \u003ccode\u003eRelayState\u003c/code\u003e matching the victim\u0027s session; the assertion signature itself remains intact, so this is not a signature-forgery issue.\u003c/p\u003e\n\u003cp\u003eThis issue affects samly: from 0.3.0 onward.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Insufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested.\n\n`Samly.SPHandler.validate_authresp/3` in `lib/samly/sp_handler.ex` validates a SAML response for the SP-initiated flow by comparing only the `RelayState` value, the IdP identifier, and the presence of a target URL held in the session. It never compares `SubjectConfirmationData/@InResponseTo` against the ID of the `AuthnRequest` the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose `InResponseTo` does not match a request it made. The underlying `esaml` library checks status, signature, recipient, audience, and staleness, but likewise never inspects `InResponseTo`, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a `RelayState` matching the victim\u0027s session; the assertion signature itself remains intact, so this is not a signature-forgery issue.\n\nThis issue affects samly: from 0.3.0 onward."
                }
              ],
              "value": "Insufficient Verification of Data Authenticity vulnerability in dropbox samly allows an attacker to establish an authenticated session using a SAML response the service provider never requested.\n\nSamly.SPHandler.validate_authresp/3 in lib/samly/sp_handler.ex validates a SAML response for the SP-initiated flow by comparing only the RelayState value, the IdP identifier, and the presence of a target URL held in the session. It never compares SubjectConfirmationData/@InResponseTo against the ID of the AuthnRequest the service provider issued, and that request ID is never persisted, so no comparison is possible. SAML 2.0 Core section 4.1.4.3 requires a service provider to reject a response whose InResponseTo does not match a request it made. The underlying esaml library checks status, signature, recipient, audience, and staleness, but likewise never inspects InResponseTo, so nothing else closes the gap. Exploitation requires a validly signed assertion from the trusted IdP, which an attacker can obtain for their own account, and a RelayState matching the victim\u0027s session; the assertion signature itself remains intact, so this is not a signature-forgery issue.\n\nThis issue affects samly: from 0.3.0 onward."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 7.6,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-345",
                  "description": "CWE-345 Insufficient Verification of Data Authenticity",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-20T18:38:13.727Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "related",
                "third-party-advisory"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-53425.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-53425"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Missing InResponseTo validation in Samly allows acceptance of unsolicited SAML responses"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-53425",
        "datePublished": "2026-08-20T17:26:35.537Z",
        "dateReserved": "2026-06-09T11:01:47.529Z",
        "dateUpdated": "2026-08-20T18:38:13.727Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2024-25718 (GCVE-0-2024-25718)

    Vulnerability from cvelistv5 – Published: 2024-02-11 00:00 – Updated: 2025-04-24 15:45
    VLAI
    Summary
    In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2024-08-01 18:06 UTC
    CWE
    • n/a
    • CWE-400 - Uncontrolled Resource Consumption
    Impacted products
    Vendor Product Version
    samly elixr Affected: 0 , < 1.4.0 (custom)
        cpe:2.3:a:samly:elixr:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "affected": [
              {
                "cpes": [
                  "cpe:2.3:a:samly:elixr:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unknown",
                "product": "elixr",
                "vendor": "samly",
                "versions": [
                  {
                    "lessThan": "1.4.0",
                    "status": "affected",
                    "version": "0",
                    "versionType": "custom"
                  }
                ]
              }
            ],
            "metrics": [
              {
                "cvssV3_1": {
                  "attackComplexity": "LOW",
                  "attackVector": "NETWORK",
                  "availabilityImpact": "NONE",
                  "baseScore": 9.1,
                  "baseSeverity": "CRITICAL",
                  "confidentialityImpact": "HIGH",
                  "integrityImpact": "HIGH",
                  "privilegesRequired": "NONE",
                  "scope": "UNCHANGED",
                  "userInteraction": "NONE",
                  "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                  "version": "3.1"
                }
              },
              {
                "other": {
                  "content": {
                    "id": "CVE-2024-25718",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-08-01T18:06:21.342589Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "problemTypes": [
              {
                "descriptions": [
                  {
                    "cweId": "CWE-400",
                    "description": "CWE-400 Uncontrolled Resource Consumption",
                    "lang": "en",
                    "type": "CWE"
                  }
                ]
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2025-04-24T15:45:22.426Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          },
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-01T23:52:05.515Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://hex.pm/packages/samly"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/handnot2/samly"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/dropbox/samly"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://diff.hex.pm/diff/samly/1.3.0..1.4.0"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/dropbox/samly/pull/13"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://github.com/dropbox/samly/pull/13/commits/812b5c3ad076dc9c9334c1a560c8e6470607d1eb"
              }
            ],
            "title": "CVE Program Container"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "n/a",
              "vendor": "n/a",
              "versions": [
                {
                  "status": "affected",
                  "version": "n/a"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry."
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "description": "n/a",
                  "lang": "en",
                  "type": "text"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2024-02-11T04:21:13.844Z",
            "orgId": "8254265b-2729-46b6-b9e3-3dfca2d5bfca",
            "shortName": "mitre"
          },
          "references": [
            {
              "url": "https://hex.pm/packages/samly"
            },
            {
              "url": "https://github.com/handnot2/samly"
            },
            {
              "url": "https://github.com/dropbox/samly"
            },
            {
              "url": "https://diff.hex.pm/diff/samly/1.3.0..1.4.0"
            },
            {
              "url": "https://github.com/dropbox/samly/pull/13"
            },
            {
              "url": "https://github.com/dropbox/samly/pull/13/commits/812b5c3ad076dc9c9334c1a560c8e6470607d1eb"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "8254265b-2729-46b6-b9e3-3dfca2d5bfca",
        "assignerShortName": "mitre",
        "cveId": "CVE-2024-25718",
        "datePublished": "2024-02-11T00:00:00.000Z",
        "dateReserved": "2024-02-11T00:00:00.000Z",
        "dateUpdated": "2025-04-24T15:45:22.426Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }