| Titre | wger-project (https://github.com/wger-project (https://github.co wger Workout Manager 2.6.0-alpha2 (master branch, commit ea78447) ss CWE-352 (Cross-Site Request Forgery — GET-based state change) |
|---|
| Description | wger Workout Manager has multiple security vulnerabilities: (1) [HIGH] GET-based CSRF on password reset & account deactivation — reset_user_password() and UserDeactivateView.get_redirect_url() perform state-changing operations (password reset, is_active toggle) on GET requests with no @require_POST or CSRF protection; an attacker can trick an authenticated gym admin into visiting a crafted URL to reset a user's password or deactivate/reactivate an account. (2) [HIGH] IDOR — Missing ownership check on gallery images — ImageUpdateView and ImageDeleteView only require authentication without verifying the image belongs to the current user; any authenticated user can edit or delete any other user's gallery images by supplying a different image PK in the URL. (3) [HIGH] JWT token not revoked on user deactivation — UserDeactivateView sets is_active=False but does not call blacklist_jwt_refresh_tokens(), so deactivated users can still obtain new access tokens via their existing refresh tokens and continue using the API. (4) [HIGH] JWT token not revoked on password reset — reset_user_password() changes the password without calling blacklist_jwt_refresh_tokens(), so an attacker holding a compromised JWT can continue accessing the account even after the password is changed. |
|---|
| La source | ⚠️ https://github.com/wger-project/wger/issues/2380 |
|---|
| Utilisateur | Galaxyn (UID 98388) |
|---|
| Soumission | 15/07/2026 02:19 (il y a 2 mois) |
|---|
| Modérer | 29/08/2026 19:50 (2 months later) |
|---|
| Statut | Accepté |
|---|
| Entrée VulDB | 397061 [wger-project wger jusqu’à 2.6.0-alpha2 Password Reset wger/gym/views/gym.py reset_user_password cross site request forgery] |
|---|
| Points | 20 |
|---|