CVE-2026-43976 json
wger: cross-tenant admin notes/contracts leak via gym=None bypass (5 views)
published 2026-10-07 32 d ago modified 2026-10-26 13 d ago also GHSA-c72h-82w6-rqfp , PYSEC-2026-4313 , EUVD-2026-94328
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 12%
- public exploits
- 0
- none known
Summary
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 the issue.
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 32 d ago
Exploit prediction
0.22% chance of exploitation in the next 30 days, higher than 12% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/wger-project/wger/security/advisories/GHSA-c72h-82w6-rqfp referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
| OSV | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | wger | <=2.1 |
no fix listed |
Affected products
- wger-project wger
Classification
- Weakness
-
- CWE-863 Incorrect Authorization
References
-
github.com
/wger-project/wger/commit/b51f472ab2f790d8b4e67b4371bd6d1915af2930
web
-
github.com
/wger-project/wger/commit/e1d329ff4ef6213b0a1adc5daf115e6d8981190c
web
-
github.com
/wger-project/wger/security/advisories/GHSA-c72h-82w6-rqfp
exploit, web
-
github.com
/wger-project/wger/releases/tag/2.6
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-43976
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/wger/PYSEC-2026-4313.yaml
web
-
github.com
/wger-project/wger
package
-
pypi.org
/project/wger
web, package
-
github.com
/advisories/GHSA-c72h-82w6-rqfp
advisory
Sources
- CVE List CVE-2026-43976
- GitHub Advisory GHSA-c72h-82w6-rqfp
- NVD CVE-2026-43976
- OSV PYSEC-2026-4313
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.