CVE-2026-46434: wger Trainer privilege escalation in user deactivation

CVE-2026-46434 · Severity: high · CVSS 7.1 · Published 2026-10-07

wger is a workout management web application that gyms use to manage members, trainers, and administrative staff. A gym trainer can deactivate any manager's account in the same gym through an unprotected action endpoint, locking managers out and allowing the trainer to seize administrative control of the gym.

Technologies: wger (PyPI), Wger. Vendors: PyPI, Wger.

Quick answers

Is CVE-2026-46434 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-46434 being exploited in the wild.
How severe is CVE-2026-46434?
High severity, with a CVSS score of 7.1, published 7 October 2026.
Which products and versions are affected?
wger (PyPI) <= 2.1, ECOSYSTEM:introduced=0,last_affected=2.1.
Is there a fix for CVE-2026-46434?
No fixed version is recorded yet. Add a privilege hierarchy check in UserDeactivateView and UserActivateView dispatch() methods to prevent lower-privileged trainers from deactivating or activating higher-privileged managers. Restrict the gym_trainer role assignment to prevent trainers being assigned to accounts that could later be used for privilege escalation. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-46434 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-46434?
Check whether you run wger (PyPI) or Wger at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

Add a privilege hierarchy check in UserDeactivateView and UserActivateView dispatch() methods to prevent lower-privileged trainers from deactivating or activating higher-privileged managers. Restrict the gym_trainer role assignment to prevent trainers being assigned to accounts that could later be used for privilege escalation.

Technical details

The UserDeactivateView checks permission using OR logic, granting access to anyone with any of three permissions (gym_trainer, gym_manage_gym, gym_manage_gyms), then only verifies same-gym membership without checking the target user's privilege level. A trainer (lower privilege) can thus deactivate or activate managers or other trainers (higher privilege) in the same gym. The same flaw exists in UserActivateView.

Affected products

  • wger wger

Identifiers

  • CVE-2026-46434
  • GHSA-x249-cx55-2h87
  • PYSEC-2026-4316

Timeline

  • 2026-10-07: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.