SAML.getSession (internal/pkg/auth/interceptor/saml.go) checks the Used flag on a SAMLAssertion resource and then marks it used in two separate state operations. Because the check and the update are not atomic, concurrent requests carrying the same saml-session token can both observe Used == false, both pass validation, and both return a successful authentication context. An attacker who obtains a valid saml-session token can exploit this window to authenticate as the token's owner multiple times, defeating the one-time-use guarantee.
saml-session token belonging to the victim (requires a separate interception step; the token is ephemeral and single-use by design).ConfirmPublicKey), establishing persistent access credentials tied to the victim's account.saml-session token can be used more than once, defeating its single-use guarantee.This vulnerability was discovered and reported by bugbunny.ai.
{
"cwe_ids": [
"CWE-294",
"CWE-367"
],
"github_reviewed": true,
"github_reviewed_at": "2026-06-05T15:25:28Z",
"nvd_published_at": null,
"severity": "HIGH"
}