CVE-2026-46438 json
wger: Cross-User Data Corruption via Missing Ownership Check on WorkoutLog.slot_entry
published 2026-10-07 32 d ago modified 2026-10-26 13 d ago also EUVD-2026-94335 , GHSA-rjpf-7pf5-q54x , PYSEC-2026-4314
- cvss
- 6.5
- 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 13%
- public exploits
- 0
- none known
Summary
wger is a free, open-source workout and fitness manager. Prior to version 2.6, an authenticated attacker can inject arbitrary workout log entries into any other user's `SlotEntry` by supplying the victim's `slot_entry` ID in a `POST /api/v2/workoutlog/` request. The `slot_entry` foreign key is not included in the ownership verification performed by `WorkoutLogViewSet.get_owner_objects()`, so the server accepts and persists the cross-user reference without error. Because `SlotEntry.get_config_data()` retrieves associated logs via `self.workoutlog_set.all()` with no user filter, the attacker's injected data is silently folded into the victim's progressive-overload calculations, corrupting their auto-generated weight and repetition targets. Version 2.6 contains a patch.
Patch / fix
- wger wger 2.6
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 32 d ago
Exploit prediction
0.23% chance of exploitation in the next 30 days, higher than 13% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/wger-project/wger/security/advisories/GHSA-rjpf-7pf5-q54x referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | wger | <=2.1 |
no fix listed |
Affected products
- wger-project wger
Classification
References
-
github.com
/wger-project/wger/commit/b29cf178651bbcc243d21673932e32bd42017893
web
-
github.com
/wger-project/wger/security/advisories/GHSA-rjpf-7pf5-q54x
exploit, web
-
github.com
/wger-project/wger/releases/tag/2.6
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-46438
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/wger/PYSEC-2026-4314.yaml
web
-
github.com
/wger-project/wger
package
-
pypi.org
/project/wger
web, package
-
github.com
/advisories/GHSA-rjpf-7pf5-q54x
advisory
Sources
- CVE List CVE-2026-46438
- GitHub Advisory GHSA-rjpf-7pf5-q54x
- NVD CVE-2026-46438
- OSV PYSEC-2026-4314
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.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.