p PatchFirst

PatchFirst · Vulnérabilités récentes

Vulnérabilités de wger

Vulnérabilités publiées pour wger au cours des 30 derniers jours : 5. Présentes dans le catalogue KEV : 0.

Filtrer les vulnérabilités
Effacer les filtres

Vulnérabilités : 20

  1. CVE-2026-46438

    Moyenne · CVSS 6.5EPSS 0,23%Code d’exploitation publicAucun correctif publié

    wger: Cross-User Data Corruption via Missing Ownership Check on WorkoutLog.slot_entry

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, an authenticated attacker can inject arbitrary workout log entries into any other user's `SlotEntry` by supplying the victim's `slot_entry` ID in a `POST /api/v2/workoutlog/` request. The `slot_entry` foreign key is not included in the ownership verification performed by `WorkoutLogViewSet.get_owner_objects()`, so the server accepts and persists the cross-user reference without error. Because `SlotEntry.get_config_data()` retrieves associated logs via `self.workoutlog_set.all()` with no user filter, the attacker's injected data is silently folded into the victim's

    Publication Mise à jour
  2. CVE-2026-46437

    Moyenne · CVSS 4.8EPSS 0,24%Code d’exploitation publicAucun correctif publié

    wger: API credentials remain valid after logout/password change

    wger is a free, open-source workout and fitness manager. Versions prior to 2.6 have a vulnerability in the authentication/session lifecycle of `wger` where bearer-style API credentials remain valid after a user logs out and after a user changes their password. An attacker who steals a victim’s DRF authtoken (`Authorization: Token ...`) or JWT refresh token can continue to access protected `/api/v2/*` endpoints until the token is manually rotated/deleted (DRF token) or naturally expires (JWT refresh). Version 2.6 contains a patch.

    Publication Mise à jour
  3. CVE-2026-46434

    Élevée · CVSS 7.1EPSS 0,22%Code d’exploitation publicAucun correctif publié

    wger: Trainer Privilege Escalation - Improper Privilege Management

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, a user with only the `gym_trainer` permission can deactivate any account in the same gym, including `gym_manager` and `general_gym_manager` accounts. The `UserDeactivateView` grants access to anyone holding any one of `gym.manage_gym`, `gym.manage_gyms`, or `gym.gym_trainer` (OR logic via `WgerMultiplePermissionRequiredMixin`), and performs no privilege-hierarchy check to prevent a lower-privileged role from disabling a higher-privileged one. Version 2.6 fixes the issue.

    Publication Mise à jour
  4. CVE-2026-45161

    Moyenne · CVSS 5.4EPSS 0,09%Code d’exploitation publicAucun correctif publié

    wger: trainer_login accepts GET - CSRF bypass enables forced session rebinding

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, the `trainer_login` view in wger accepts GET requests and executes `django_login()` without any CSRF protection, because Django's `CsrfViewMiddleware` only enforces tokens on unsafe methods (POST/PUT/PATCH/DELETE). An attacker can embed a single `<img>` tag on a malicious page; when an authenticated trainer loads that page, their browser auto-issues the GET with the session cookie, forcibly rebinding the trainer's session to an arbitrary user account. Version 2.6 fixes the issue.

    Publication Mise à jour
  5. CVE-2026-43976

    Élevée · CVSS 7.1EPSS 0,22%Code d’exploitation publicAucun correctif publié

    wger: cross-tenant admin notes/contracts leak via gym=None bypass (5 views)

    wger is a free, open-source workout and fitness manager. Prior to version 2.6, five gym management views in wger apply a flawed gym-scope guard (`gym_a != gym_b`) that silently passes when both operands are `None`. A trainer with `gym.gym_trainer` and `gym.add_adminusernote` permissions and no gym assignment (`gym=None`) can read private admin notes, uploaded documents, gym contracts, user configuration, and user permission data for **any other unaffiliated user** on the instance. The subsequent querysets filter only on the attacker-supplied `member_id` with no secondary gym-scoped validation, so all records are disclosed. Version 2.6 fixes t

    Publication Mise à jour
  6. CVE-2026-86257

    Moyenne · CVSS 4.8EPSS 0,28%Correctif disponible

    wger before 2.6 CSV Formula Injection via member export

    wger before 2.6 fails to sanitize first_name and last_name fields in the gym member TSV export endpoint, allowing any gym member to inject spreadsheet formulas. Attackers can inject formulas like =HYPERLINK to exfiltrate admin data or execute code when admins open the exported file in Excel or LibreOffice Calc.

    • Mettez à jour vers 2.6
    Publication Mise à jour
  7. CVE-2026-86256

    Moyenne · CVSS 5.1EPSS 0,23%Correctif disponible

    wger before 2.6 Open Redirect via trainer-login next parameter

    wger before 2.6 (affected versions <= 2.5.0) contains an open redirect vulnerability in the trainer_login view (wger/core/views/user.py). After a trainer enters impersonation mode, the view redirects to the user-supplied 'next' GET parameter via HttpResponseRedirect() without validating it with url_has_allowed_host_and_scheme(). An attacker who delivers a crafted link to an authenticated trainer can redirect the trainer's browser to an attacker-controlled domain, enabling phishing and leaking the wger URL structure (including the impersonated user's user_pk) via the Referer header.

    • Mettez à jour vers 2.6
    Publication Mise à jour
  8. CVE-2026-86255

    Élevée · CVSS 7.1EPSS 0,44%Aucun correctif publié

    wger before 2.5 Uncontrolled Resource Consumption via date_sequence

    wger before 2.5 fails to validate the maximum duration of routine date ranges, allowing authenticated users to create routines spanning arbitrarily long periods. Attackers can trigger the date_sequence computation via routine detail endpoints, forcing the server to iterate thousands of times per request and exhaust worker threads, denying service to legitimate users.

    Publication Mise à jour
  9. CVE-2026-43977

    Élevée · CVSS 7.5EPSS 0,29%Aucun correctif publié

    wger IDOR: Authenticated Users Can Read Others' Private Workout Session Data via Template Routine API

    wger is a free, open-source workout and fitness manager. In versions prior to 2.6, any authenticated user can read another user's private workout session notes, exercise history, and training statistics by calling the /logs/ and /stats/ actions on a routine they do not own. The vulnerability exists in RoutineViewSet (wger/manager/api/views.py). The view defines two custom actions /logs/ and /stats/ that are intended to return data for the requesting user's own training history within a routine. However, the underlying permission check (RoutinePermission.has_object_permission) grants read access to any authenticated user when the routine has i

    Publication Mise à jour
  10. CVE-2026-43978

    Élevée · CVSS 8.1EPSS 0,27%Aucun correctif publié

    wger: Privilege escalation via trainer-login session chaining allows gym trainers to impersonate gym managers

    wger is a free, open-source workout and fitness manager. In versions prior to 2.6, a gym trainer can escalate their session to any higher-privileged account (gym manager, general manager) by chaining two calls to the trainer-login endpoint. Once a trainer performs a legitimate switch into a low-privileged user, the session flag trainer.identity is set and this flag alone bypasses the permission check on all subsequent trainer-login calls. This grants full gym administration capabilities including viewing all member data, modifying contracts, managing gym configuration, and accessing other trainers' and managers' personal information. This iss

    Publication Mise à jour
  11. GHSA-mw8f-w6p8-xrf4

    Élevée · CVSS 8.5Aucun correctif publié

    wger: cross-tenant account deletion / deactivation / activation by gym.manage_gym + gym=None

    ## Summary GHSA-mhc8-p3jx-84mm (CVE-2026-43948) reported that wger's `reset_user_password` and `gym_permissions_user_edit` views in `wger/gym/views/user.py` performed a gym-scope authorization check using Django ORM object comparison (`if request.user.userprofile.gym != user.userprofile.gym`) which silently passes when both sides are `None` (`None != None` evaluates to `False`). The maintainer's suggested patch ("Apply the same `same_gym()` helper pattern to all five views sharing this check") replaces every `userprofile.gym !=` site with the new `is_same_gym()` helper that explicitly excludes `None` (`gym_a is not None and gym_a == gym_b`).

    Publication Mise à jour
  12. CVE-2026-43948

    Critique · CVSS 9.9EPSS 0,37%Correctif disponible

    wger: cross-tenant password reset and plaintext disclosure via gym=None bypass

    wger is a free, open-source workout and fitness manager. Prior to 2.6, the reset_user_password and gym_permissions_user_edit views in wger perform a gym-scope authorization check using Python object comparison (!=) that evaluates None != None as False, silently bypassing the guard when both the attacker and victim have no gym assignment (gym=None). A user with gym.manage_gym permission and gym=None can reset the password of any other gym=None user; the new plaintext password is returned verbatim in the HTML response body, enabling one-shot full account takeover. The victim's original password is invalidated, locking them out permanently. This

    • Mettez à jour vers 2.6
    Publication Mise à jour
  13. CVE-2026-40474

    Élevée · CVSS 7.6EPSS 0,33%Aucun correctif publié

    wger has Broken Access Control in the Global Gym Configuration Update Endpoint

    wger is a free, open-source workout and fitness manager. In versions 2.5 and below, the GymConfigUpdateView declares permission_required = 'config.change_gymconfig' but inherits WgerFormMixin instead of WgerPermissionMixin, so the permission is never enforced at runtime. Since GymConfig is an ownerless singleton, any authenticated user can modify the global gym configuration, triggering save() side effects that bulk-update user profile gym assignments — a vertical privilege escalation to installation-wide configuration control. This issue is fixed in version 2.5.

    Publication Mise à jour
  14. CVE-2026-40353

    Moyenne · CVSS 5.1EPSS 0,21%Aucun correctif publié

    wger: Stored XSS via Unescaped License Attribution Fields

    wger is a free, open-source workout and fitness manager. In versions 2.5 and below, the attribution_link property in AbstractLicenseModel constructs HTML by directly interpolating user-controlled license fields (such as license_author) without escaping, and templates render the result using Django's |safe filter. An authenticated user can create an ingredient with a malicious license_author value containing JavaScript, which executes in the browser of any visitor viewing the ingredient page, resulting in stored XSS. This issue has been fixed in version 2.5.

    Publication Mise à jour
  15. CVE-2026-27839

    Moyenne · CVSS 4.3EPSS 0,3%Aucun correctif publié

    wger: IDOR in nutritional_values endpoints exposes private dietary data via direct ORM lookup

    wger is a free, open-source workout and fitness manager. In versions up to and including 2.4, three `nutritional_values` action endpoints fetch objects via `Model.objects.get(pk=pk)` — a raw ORM call that bypasses the user-scoped queryset. Any authenticated user can read another user's private nutrition plan data, including caloric intake and full macro breakdown, by supplying an arbitrary PK. Commit 29876a1954fe959e4b58ef070170e81703dab60e contains a fix for the issue.

    Publication Mise à jour
  16. CVE-2026-27838

    Faible · CVSS 3.1EPSS 0,29%Aucun correctif publié

    wger: IDOR via user-unscoped cache keys on routine API actions exposes workout data

    wger is a free, open-source workout and fitness manager. Five routine detail action endpoints check a cache before calling `self.get_object()`. In versions up to and including 2.4, ache keys are scoped only by `pk` — no user ID is included. When a victim has previously accessed their routine via the API, an attacker can retrieve the cached response for the same PK without any ownership check. Commit e964328784e2ee2830a1991d69fadbce86ac9fbf contains a patch for the issue.

    Publication Mise à jour
  17. CVE-2026-27835

    Moyenne · CVSS 4.3EPSS 0,29%Aucun correctif publié

    wger: IDOR in RepetitionsConfig and MaxRepetitionsConfig API leak other users' workout data

    wger is a free, open-source workout and fitness manager. In versions up to and including 2.4, `RepetitionsConfigViewSet` and `MaxRepetitionsConfigViewSet` return all users' repetition config data because their `get_queryset()` calls `.all()` instead of filtering by the authenticated user. Any registered user can enumerate every other user's workout structure. Commit 1fda5690b35706bb137850c8a084ec6a13317b64 contains a fix for the issue.

    Publication Mise à jour
  18. CVE-2023-38759

    Élevée · CVSS 8.8EPSS 0,4%Aucun correctif publié

    CVE-2023-38759

    Cross Site Request Forgery (CSRF) vulnerability in wger Project wger Workout Manager 2.2.0a3 allows a remote attacker to gain privileges via the user-management feature in the gym/views/gym.py, templates/gym/reset_user_password.html, templates/user/overview.html, core/views/user.py, and templates/user/preferences.html, core/forms.py components.

    Publication Mise à jour
  19. CVE-2023-38758

    Moyenne · CVSS 5.4EPSS 0,59%Aucun correctif publié

    CVE-2023-38758

    Cross Site Scripting vulnerability in wger Project wger Workout Manager v.2.2.0a3 allows a remote attacker to gain privileges via the license_author field in the add-ingredient function in the templates/ingredients/view.html, models/ingredients.py, and views/ingredients.py components.

    Publication Mise à jour

Vérifiez votre serveur

Comparez votre pile et les versions installées aux bases de vulnérabilités actuelles.

Vérifiez votre serveur →