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 by handnot2

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

    Vulnerability from nvd – Published: 2026-08-20 17:26 – Updated: 2026-08-21 19:50
    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.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-21 19:50 UTC
    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": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-53425",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-21T19:50:24.245049Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-21T19:50:34.320Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "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-21T19:50:34.320Z",
        "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-21 19:42
    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.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-21 19:41 UTC
    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": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-53424",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-21T19:41:30.269903Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-21T19:42:21.623Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "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-21T19:42:21.623Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-28809 (GCVE-0-2026-28809)

    Vulnerability from nvd – Published: 2026-03-23 10:09 – Updated: 2026-07-24 14:14
    VLAI
    Title
    XXE in esaml SAML library allows local file read and potential SSRF
    Summary
    XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages. esaml parses attacker-controlled SAML messages using xmerl_scan:string/2 before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages. This issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP 27 or later are not affected due to Xmerl defaulting to entities disabled.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-03-23 15:07 UTC
    CWE
    • CWE-611 - Improper Restriction of XML External Entity Reference
    Assigner
    Impacted products
    Vendor Product Version
    dropbox esaml     cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*
        cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*
        cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    arekinath esaml     cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    handnot2 esaml     cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    dropbox esaml     cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Jump-App esaml Affected: deeb84378d5c82153b470e99d24f77c38afca14a , < bab85efde7c136911402a881ca55173759467a26 (git)
    Unaffected: bab85efde7c136911402a881ca55173759467a26 (git)
        cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-28809",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-03-23T15:07:17.488260Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-03-23T15:52:46.187Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "cpes": [
                "cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*",
                "cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*",
                "cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "esaml",
              "packageURL": "pkg:hex/esaml",
              "product": "esaml",
              "vendor": "dropbox"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "arekinath/esaml",
              "packageURL": "pkg:github/arekinath/esaml",
              "product": "esaml",
              "repo": "https://github.com/arekinath/esaml.git",
              "vendor": "arekinath"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "handnot2/esaml",
              "packageURL": "pkg:github/handnot2/esaml",
              "product": "esaml",
              "repo": "https://github.com/handnot2/esaml.git",
              "vendor": "handnot2"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "dropbox/esaml",
              "packageURL": "pkg:github/dropbox/esaml",
              "product": "esaml",
              "repo": "https://github.com/dropbox/esaml.git",
              "vendor": "dropbox"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "Jump-App/esaml",
              "packageURL": "pkg:github/Jump-App/esaml",
              "product": "esaml",
              "repo": "https://github.com/Jump-App/esaml.git",
              "vendor": "Jump-App",
              "versions": [
                {
                  "lessThan": "bab85efde7c136911402a881ca55173759467a26",
                  "status": "affected",
                  "version": "deeb84378d5c82153b470e99d24f77c38afca14a",
                  "versionType": "git"
                },
                {
                  "status": "unaffected",
                  "version": "bab85efde7c136911402a881ca55173759467a26",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The application must use esaml to process SAML messages and run on Erlang/OTP versions before 27. Starting with OTP 27, \u003ctt\u003exmerl_scan\u003c/tt\u003e disables entity expansion by default, which mitigates this vulnerability."
                }
              ],
              "value": "The application must use esaml to process SAML messages and run on Erlang/OTP versions before 27. Starting with OTP 27, xmerl_scan disables entity expansion by default, which mitigates this vulnerability."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "bab85efde7c136911402a881ca55173759467a26",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Bryan Lynch"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages.\u003cp\u003eesaml parses attacker-controlled SAML messages using \u003ctt\u003exmerl_scan:string/2\u003c/tt\u003e before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages.\u003c/p\u003e\u003cp\u003eThis issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP\u0026nbsp;27 or later are not affected due to Xmerl defaulting to entities disabled.\u003c/p\u003e"
                }
              ],
              "value": "XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages.\n\nesaml parses attacker-controlled SAML messages using xmerl_scan:string/2 before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages.\n\nThis issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP\u00a027 or later are not affected due to Xmerl defaulting to entities disabled."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-201",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-201 Serialized Data External Linking"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "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:L/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-611",
                  "description": "CWE-611 Improper Restriction of XML External Entity Reference",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-24T14:14:51.289Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "third-party-advisory",
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-28809.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-28809"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/Jump-App/esaml/commit/bab85efde7c136911402a881ca55173759467a26"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "XXE in esaml SAML library allows local file read and potential SSRF",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Upgrade to Erlang/OTP 27 or later. Starting with OTP 27, \u003ctt\u003exmerl_scan\u003c/tt\u003e disables entity expansion by default, which mitigates this vulnerability without changes to esaml."
                }
              ],
              "value": "Upgrade to Erlang/OTP 27 or later. Starting with OTP 27, xmerl_scan disables entity expansion by default, which mitigates this vulnerability without changes to esaml."
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 1.0.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-28809",
        "datePublished": "2026-03-23T10:09:29.233Z",
        "dateReserved": "2026-03-03T14:40:00.590Z",
        "dateUpdated": "2026-07-24T14:14:51.289Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

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

    Vulnerability from cvelistv5 – Published: 2026-08-20 17:27 – Updated: 2026-08-21 19:42
    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.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-21 19:41 UTC
    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": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-53424",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-21T19:41:30.269903Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-21T19:42:21.623Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "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-21T19:42:21.623Z",
        "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-21 19:50
    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.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-21 19:50 UTC
    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": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-53425",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-21T19:50:24.245049Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-21T19:50:34.320Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "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-21T19:50:34.320Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-28809 (GCVE-0-2026-28809)

    Vulnerability from cvelistv5 – Published: 2026-03-23 10:09 – Updated: 2026-07-24 14:14
    VLAI
    Title
    XXE in esaml SAML library allows local file read and potential SSRF
    Summary
    XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages. esaml parses attacker-controlled SAML messages using xmerl_scan:string/2 before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages. This issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP 27 or later are not affected due to Xmerl defaulting to entities disabled.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-03-23 15:07 UTC
    CWE
    • CWE-611 - Improper Restriction of XML External Entity Reference
    Assigner
    Impacted products
    Vendor Product Version
    dropbox esaml     cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*
        cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*
        cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    arekinath esaml     cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    handnot2 esaml     cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    dropbox esaml     cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Jump-App esaml Affected: deeb84378d5c82153b470e99d24f77c38afca14a , < bab85efde7c136911402a881ca55173759467a26 (git)
    Unaffected: bab85efde7c136911402a881ca55173759467a26 (git)
        cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-28809",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-03-23T15:07:17.488260Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-03-23T15:52:46.187Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "cpes": [
                "cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*",
                "cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*",
                "cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "esaml",
              "packageURL": "pkg:hex/esaml",
              "product": "esaml",
              "vendor": "dropbox"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "arekinath/esaml",
              "packageURL": "pkg:github/arekinath/esaml",
              "product": "esaml",
              "repo": "https://github.com/arekinath/esaml.git",
              "vendor": "arekinath"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "handnot2/esaml",
              "packageURL": "pkg:github/handnot2/esaml",
              "product": "esaml",
              "repo": "https://github.com/handnot2/esaml.git",
              "vendor": "handnot2"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "dropbox/esaml",
              "packageURL": "pkg:github/dropbox/esaml",
              "product": "esaml",
              "repo": "https://github.com/dropbox/esaml.git",
              "vendor": "dropbox"
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "affected",
              "packageName": "Jump-App/esaml",
              "packageURL": "pkg:github/Jump-App/esaml",
              "product": "esaml",
              "repo": "https://github.com/Jump-App/esaml.git",
              "vendor": "Jump-App",
              "versions": [
                {
                  "lessThan": "bab85efde7c136911402a881ca55173759467a26",
                  "status": "affected",
                  "version": "deeb84378d5c82153b470e99d24f77c38afca14a",
                  "versionType": "git"
                },
                {
                  "status": "unaffected",
                  "version": "bab85efde7c136911402a881ca55173759467a26",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The application must use esaml to process SAML messages and run on Erlang/OTP versions before 27. Starting with OTP 27, \u003ctt\u003exmerl_scan\u003c/tt\u003e disables entity expansion by default, which mitigates this vulnerability."
                }
              ],
              "value": "The application must use esaml to process SAML messages and run on Erlang/OTP versions before 27. Starting with OTP 27, xmerl_scan disables entity expansion by default, which mitigates this vulnerability."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "bab85efde7c136911402a881ca55173759467a26",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Bryan Lynch"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages.\u003cp\u003eesaml parses attacker-controlled SAML messages using \u003ctt\u003exmerl_scan:string/2\u003c/tt\u003e before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages.\u003c/p\u003e\u003cp\u003eThis issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP\u0026nbsp;27 or later are not affected due to Xmerl defaulting to entities disabled.\u003c/p\u003e"
                }
              ],
              "value": "XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages.\n\nesaml parses attacker-controlled SAML messages using xmerl_scan:string/2 before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages.\n\nThis issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP\u00a027 or later are not affected due to Xmerl defaulting to entities disabled."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-201",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-201 Serialized Data External Linking"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "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:L/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-611",
                  "description": "CWE-611 Improper Restriction of XML External Entity Reference",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-24T14:14:51.289Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "third-party-advisory",
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-28809.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-28809"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/Jump-App/esaml/commit/bab85efde7c136911402a881ca55173759467a26"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "XXE in esaml SAML library allows local file read and potential SSRF",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Upgrade to Erlang/OTP 27 or later. Starting with OTP 27, \u003ctt\u003exmerl_scan\u003c/tt\u003e disables entity expansion by default, which mitigates this vulnerability without changes to esaml."
                }
              ],
              "value": "Upgrade to Erlang/OTP 27 or later. Starting with OTP 27, xmerl_scan disables entity expansion by default, which mitigates this vulnerability without changes to esaml."
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 1.0.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-28809",
        "datePublished": "2026-03-23T10:09:29.233Z",
        "dateReserved": "2026-03-03T14:40:00.590Z",
        "dateUpdated": "2026-07-24T14:14:51.289Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }