Description
wger versions through master contain an incomplete authorization bypass in wger/core/views/user.py where three views retain the original gym-scope check using raw integer comparison instead of the is_same_gym() helper, allowing gym staff with gym=None to delete, deactivate, or activate any other user with gym=None. Attackers with gym.manage_gym permission and gym=None affiliation can permanently delete user accounts, lock users out via deactivation, or undo defensive deactivations by exploiting the None != None comparison edge case.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| wger-project | wger | ≤ master | — |
References
- GitHub Security Advisory (GHSA-mw8f-w6p8-xrf4) vendor-advisory
- VulnCheck Advisory: wger Incomplete Authorization Fix Cross-Tenant Account Deletion third-party-advisory