CVE-2026-46438 wger: Cross-User Data Corruption via Missing Ownership Check on WorkoutLog.slot_entry

Medium 6.5 Published Updated

An authenticated attacker can inject arbitrary workout log entries into other users' profiles, corrupting their training data calculations.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
None listed

What is CVE-2026-46438?

CVE-2026-46438 is a medium-severity missing authorization vulnerability in wger-project wger, published on 7 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

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.

Weakness: CWE-862, CWE-639

Which versions are affected by CVE-2026-46438?

3 open source packages ship an affected version, including wger.

PackageAffectedFixed in
wger PyPIAll versions to 2.1None
wger PyPIAll versions to 2.1None
wger PyPIAll versions to 2.1None

How do I fix CVE-2026-46438?

No fix has been published for CVE-2026-46438 yet. Limit exposure of the affected software until one is available.

Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.

Is CVE-2026-46438 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-46438 exists.

Sources

Also known as GHSA-rjpf-7pf5-q54x, PYSEC-2026-4314.

Is CVE-2026-46438 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free