CVE-2026-46438: wger: Cross-User Data Corruption via Missing Ownership Check on WorkoutLog.slot_entry
(updated )
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.
References
- github.com/advisories/GHSA-rjpf-7pf5-q54x
- github.com/pypa/advisory-database/tree/main/vulns/wger/PYSEC-2026-4314.yaml
- github.com/wger-project/wger/commit/b29cf178651bbcc243d21673932e32bd42017893
- github.com/wger-project/wger/releases/tag/2.6
- github.com/wger-project/wger/security/advisories/GHSA-rjpf-7pf5-q54x
- nvd.nist.gov/vuln/detail/CVE-2026-46438
- pypi.org/project/wger
Code Behaviors & Features
Detect and mitigate CVE-2026-46438 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →