Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
The probability is the direct output of the EPSS model, and conveys an overall sense of the threat of exploitation in the wild. The percentile measures the EPSS probability relative to all known EPSS scores. Note: This data is updated daily, relying on the latest available EPSS model version. Check out the EPSS documentation for more details.
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 applicationsLearn about Incorrect Authorization vulnerabilities in an interactive lesson.
Start learningA fix was pushed into the master branch but not yet published.
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.