{"id":"GHSA-74r7-3mjm-jc5v","aliases":[],"status":"published","title":"eduMFA: Unauthenticated Failcounter Increment on Resolver Tokens via /validate/check","description":"### Impact\nIf the resolver parameter is passed, but the user does not exist, all failcounters of tokens in that resolver will be increased.\n\n### Patches\nThis, along with other issues, was fixed in eduMFA v2.9.1.\n\n### Workarounds\nLimiting access to `/validate/check` to client applications (i.e. Shibboleth/FreeRADIUS) using an authorization policy with `api_key_required` or using e.g. the reverse proxy.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-20"],"published":"2026-05-18T15:35:42Z","modified":"2026-05-18T15:48:51Z","fixes":[{"ecosystem":"PyPI","package":"edumfa","fixed_in":["2.9.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"edumfa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"edumfa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.1"}]}],"versions":["1.2.0","1.3.0","1.4.0","1.5.0","1.5.1","2.0.0","2.0.1","2.0.2","2.0.3","2.1.0","2.2.0","2.3.0","2.4.0","2.5.0","2.6.0","2.6.1","2.7.0","2.7.1","2.7.2","2.8.0","2.9.0","2.9.0rc1"]}],"references":[{"url":"https://github.com/eduMFA/eduMFA/security/advisories/GHSA-74r7-3mjm-jc5v","tags":["web"]},{"url":"https://github.com/advisories/GHSA-74r7-3mjm-jc5v"},{"url":"https://github.com/eduMFA/eduMFA","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-74r7-3mjm-jc5v","title":"eduMFA: Unauthenticated Failcounter Increment on Resolver Tokens via /validate/check","description":"### Impact\nIf the resolver parameter is passed, but the user does not exist, all failcounters of tokens in that resolver will be increased.\n\n### Patches\nThis, along with other issues, was fixed in eduMFA v2.9.1.\n\n### Workarounds\nLimiting access to `/validate/check` to client applications (i.e. Shibboleth/FreeRADIUS) using an authorization policy with `api_key_required` or using e.g. the reverse proxy.","status":"published","published":"2026-05-18T15:35:42Z","modified":"2026-05-18T15:35:44Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T14:40:11.298154Z"}],"osv":[{"id":"GHSA-74r7-3mjm-jc5v","title":"eduMFA: Unauthenticated Failcounter Increment on Resolver Tokens via /validate/check","description":"### Impact\nIf the resolver parameter is passed, but the user does not exist, all failcounters of tokens in that resolver will be increased.\n\n### Patches\nThis, along with other issues, was fixed in eduMFA v2.9.1.\n\n### Workarounds\nLimiting access to `/validate/check` to client applications (i.e. Shibboleth/FreeRADIUS) using an authorization policy with `api_key_required` or using e.g. the reverse proxy.","status":"published","published":"2026-05-18T15:35:42Z","modified":"2026-05-18T15:48:51.582362Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-20"],"updated_at":"2026-11-02T15:46:40.657155Z"}]}}
