{"id":"CVE-2024-25718","aliases":["EUVD-2024-0647","GHSA-h3rw-77w7-92gf"],"status":"published","title":"Samly access control vulnerability","description":"In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-11","score":0.00664,"percentile":0.52205,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400","CWE-613"],"published":"2024-02-11T00:00:00Z","modified":"2026-09-10T03:50:06Z","fixes":[{"ecosystem":"Hex","package":"Samly","fixed_in":["1.4.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Hex","package":"Samly","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.0"}]}]},{"source":"osv","ecosystem":"Hex","package":"Samly","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.4.0"}]}]}],"products":[{"vendor":"dropbox","product":"samly"},{"vendor":"samly","product":"elixr"}],"references":[{"url":"https://hex.pm/packages/samly","tags":["x_transferred","Release Notes","web"]},{"url":"https://github.com/handnot2/samly","tags":["x_transferred","Product","web"]},{"url":"https://github.com/dropbox/samly","tags":["x_transferred","Product","package"]},{"url":"https://diff.hex.pm/diff/samly/1.3.0..1.4.0","tags":["x_transferred","Patch","web"]},{"url":"https://github.com/dropbox/samly/pull/13","tags":["x_transferred","Patch","web"]},{"url":"https://github.com/dropbox/samly/pull/13/commits/812b5c3ad076dc9c9334c1a560c8e6470607d1eb","tags":["x_transferred","Patch","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-25718","tags":["advisory"]},{"url":"https://github.com/dropbox/samly/commit/7637ebeef6c6b88ec2032f5323c32edcebbacbc6","tags":["web"]},{"url":"https://github.com/advisories/GHSA-h3rw-77w7-92gf"}],"sources":{"cve":[{"id":"CVE-2024-25718","description":"In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.","status":"published","published":"2024-02-11T00:00:00Z","modified":"2025-04-24T15:45:22.426Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"adp"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:34:04.341725Z"}],"euvd":[{"id":"EUVD-2024-0647","description":"In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.","status":"published","published":"2024-02-11T00:00:00Z","modified":"2025-04-24T15:45:22Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T20:52:04.118749Z"}],"ghsa":[{"id":"GHSA-h3rw-77w7-92gf","title":"Samly access control vulnerability","description":"In the Samly package before 1.4.0 for Elixir, `Samly.State.Store.get_assertion/3` can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.","status":"published","published":"2024-02-11T06:30:27Z","modified":"2024-10-21T21:40:48Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"critical"}],"cwes":["CWE-400","CWE-613"],"updated_at":"2026-11-02T14:38:12.325695Z"}],"nvd":[{"id":"CVE-2024-25718","description":"In the Samly package before 1.4.0 for Elixir, Samly.State.Store.get_assertion/3 can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.","status":"published","published":"2024-02-11T05:15:08.463Z","modified":"2026-06-17T07:16:28.04Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"secondary"}],"cwes":["CWE-613","CWE-400"],"updated_at":"2026-11-02T14:09:35.738752Z"}],"osv":[{"id":"GHSA-h3rw-77w7-92gf","title":"Samly access control vulnerability","description":"In the Samly package before 1.4.0 for Elixir, `Samly.State.Store.get_assertion/3` can return an expired session, which interferes with access control because Samly.AuthHandler uses a cached session and does not replace it, even after expiry.","status":"published","published":"2024-02-11T06:30:27Z","modified":"2026-09-10T03:50:06.219469377Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"critical"}],"cwes":["CWE-400","CWE-613"],"updated_at":"2026-11-02T15:46:48.546324Z"}]}}
