{"schemaVersion":3,"id":"CVE-2025-46815","aliases":["GHSA-g4r8-mp7g-85fq","GO-2025-3671"],"status":"published","duplicateOf":null,"title":null,"description":"The identity infrastructure software ZITADEL offers developers the ability to manage user sessions using the Session API. This API enables the use of IdPs for authentication, known as idp intents. Following a successful idp intent, the client receives an id and token on a predefined URI. These id and token can then be used to authenticate the user or their session. However, prior to versions 3.0.0, 2.71.9, and 2.70.10, it was possible to exploit this feature by repeatedly using intents. This allowed an attacker with access to the application’s URI to retrieve the id and token, enabling them to authenticate on behalf of the user. It's important to note that the use of additional factors (MFA) prevents a complete authentication process and, consequently, access to the ZITADEL API. Versions 3.0.0, 2.71.9, and 2.70.10 contain a fix for the issue. No known workarounds other than upgrading are available.","dates":{"published":"2025-05-06T17:13:53.878Z","modified":"2025-05-06T18:21:14.384Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Go","score":8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N","exploitability":4.1,"impact":9.7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00463,"percentile":0.38843,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.01899999999999992,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00444},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00463,"percentile":0.38843}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00444,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00463,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00463,"percentile":0.38843}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-294","name":"Authentication Bypass by Capture-replay","description":"A capture-replay flaw exists when the design of the product makes it possible for a malicious user to sniff network traffic and bypass authentication by replaying it to the server in question to the same effect as the original message (or with minor changes).","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/294.html"},{"id":"CWE-384","name":"Session Fixation","description":"Authenticating a user, or otherwise establishing a new user session, without invalidating any existing session identifier gives an attacker the opportunity to steal authenticated sessions.","type":"weakness","status":"Incomplete","abstraction":"Compound","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/384.html"},{"id":"CWE-613","name":"Insufficient Session Expiration","description":"According to WASC, \"Insufficient Session Expiration is when a web site permits an attacker to reuse old session credentials or session IDs for authorization.\"","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/613.html"}],"affected":[{"vendor":"github.com/zitadel","product":"zitadel","name":"github.com/zitadel/zitadel","label":"zitadel","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/github.com/zitadel/zitadel","purlType":"golang","versions":[{"text":"≥ 3.0.0-rc.1, < 3.0.0","noFixRecorded":false,"fixedIn":null},{"text":"< 2.70.10","noFixRecorded":false,"fixedIn":null},{"text":"≥ 2.71.0, < 2.71.9","noFixRecorded":false,"fixedIn":null},{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"≥ 3.0.0-rc.1, < 3.0.0 | < 2.70.10 | ≥ 2.71.0, < 2.71.9 | All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"zitadel","product":"zitadel","name":"zitadel","label":"zitadel","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 3.0.0-rc.1, < 3.0.0","noFixRecorded":false,"fixedIn":null},{"text":"< 2.70.10","noFixRecorded":false,"fixedIn":null},{"text":"≥ 2.71.0, < 2.71.9","noFixRecorded":false,"fixedIn":null},{"text":"3.0.0:rc1","noFixRecorded":false,"fixedIn":null},{"text":"3.0.0:rc2","noFixRecorded":false,"fixedIn":null},{"text":"3.0.0:rc3","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 3.0.0-rc.1, < 3.0.0 | < 2.70.10 | ≥ 2.71.0, < 2.71.9 | 3.0.0:rc1 | 3.0.0:rc2 | 3.0.0:rc3","eol":null,"hubHref":"/vendor/zitadel/zitadel"}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/zitadel/zitadel/security/advisories/GHSA-g4r8-mp7g-85fq","label":"github.com/zitadel/zitadel/security/advisories/GHSA-g4r8-mp7g-85fq","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory","Vendor Advisory"]},{"url":"https://github.com/zitadel/zitadel/commit/b1e60e7398d677f08b06fd7715227f70b7ca1162","label":"github.com/zitadel/zitadel/commit/b1e60e7398d677f08b06fd7715227f70b7ca1162","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch"]},{"url":"https://github.com/zitadel/zitadel/releases/tag/v2.70.10","label":"github.com/zitadel/zitadel/releases/tag/v2.70.10","hostname":"github.com","tags":["X Refsource MISC","WEB","Release Notes"]},{"url":"https://github.com/zitadel/zitadel/releases/tag/v2.71.9","label":"github.com/zitadel/zitadel/releases/tag/v2.71.9","hostname":"github.com","tags":["X Refsource MISC","WEB","Release Notes"]},{"url":"https://github.com/zitadel/zitadel/releases/tag/v3.0.0","label":"github.com/zitadel/zitadel/releases/tag/v3.0.0","hostname":"github.com","tags":["X Refsource MISC","WEB","Release Notes"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-46815","label":"nvd.nist.gov/vuln/detail/CVE-2025-46815","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/zitadel/zitadel","label":"github.com/zitadel/zitadel","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2025:15135-1"],"duplicates":[],"related":["OPENSUSE-SU-2025:15135-1"]},"timeline":[{"kind":"published","date":"2025-05-06T17:13:53.878Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2025-05-06T18:21:14.384Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":32,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T17:23:19.850Z","stale":false,"partial":false}}