Critical severity · published May 12, 2026
CVE-2026-43948
wger: cross-tenant password reset and plaintext disclosure via gym=None bypass
9.9
CVSS
0.4%
EPSS
No
On KEV
Description
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 vulnerability is fixed in 2.6.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.4% · higher than 31% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
WG
wger · wger-project
< 2.6 · source: vendor
Affected product
WG
wger
wger-project
More from wger
8.1
CVE-2026-43978
wger: Privilege escalation via trainer-login session chaining allows gym trainers to impersonate gym managers
7.6
CVE-2026-40474
wger has Broken Access Control in the Global Gym Configuration Update Endpoint
7.5
CVE-2026-43977
wger IDOR: Authenticated Users Can Read Others' Private Workout Session Data via Template Routine API
7.1
CVE-2026-46434
wger: Trainer Privilege Escalation - Improper Privilege Management
7.1
CVE-2026-43976
wger: cross-tenant admin notes/contracts leak via gym=None bypass (5 views)