Incorrect Authorization Affecting wger package, versions [0,]


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.22% (12th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Incorrect Authorization vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-PYTHON-WGER-21693642
  • published24 Oct 2026
  • disclosed7 Oct 2026
  • creditUnknown

Introduced: 7 Oct 2026

NewCVE-2026-43976  (opens in a new tab)
CWE-863  (opens in a new tab)

How to fix?

A fix was pushed into the master branch but not yet published.

Overview

Affected versions of this package are vulnerable to Incorrect Authorization via a flawed gym-scope guard in five gym management views (wger/gym/views/admin_notes.py, wger/gym/views/document.py, wger/gym/views/contract.py, wger/gym/views/user_config.py, and wger/gym/views/user.py) that compares gym objects with !=. When both the requesting trainer's and the target member's userprofile.gym are None, Python evaluates None != None as False, causing the HttpResponseForbidden guard to be silently bypassed. An authenticated trainer with gym.gym_trainer and gym.add_adminusernote permissions and no gym assignment can then read private admin notes, uploaded documents, gym contracts, user configuration, and user permission data for any other unaffiliated user on the instance, because the subsequent querysets filter only on the attacker-supplied member_id with no secondary gym-scoped validation. The permissions endpoint is also reachable, creating a potential privilege escalation path beyond information disclosure.

Note: This is only exploitable when the attacker holds gym.gym_trainer and gym.add_adminusernote permissions with userprofile.gym=None, and the target user also has userprofile.gym=None - the default state for newly registered users before manual gym assignment.

CVSS Base Scores

version 4.0
version 3.1