Vulnerability · Published Oct 7, 2026 · Assigned by GitHub_M
CVE-2026-45161wger: trainer_login accepts GET - CSRF bypass enables forced session rebinding
Medium 5.4
In plain English
A medium-severity cross-site request forgery in wger from wger-project. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.1% (higher than 0% of all known vulnerabilities).
Official description
wger is a free, open-source workout and fitness manager. Prior to version 2.6, the `trainer_login` view in wger accepts GET requests and executes `django_login()` without any CSRF protection, because Django's `CsrfViewMiddleware` only enforces tokens on unsafe methods (POST/PUT/PATCH/DELETE). An attacker can embed a single `<img>` tag on a malicious page; when an authenticated trainer loads that page, their browser auto-issues the GET with the session cookie, forcibly rebinding the trainer's session to an arbitrary user account. Version 2.6 fixes the issue.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | wger | no fix listed | GHSA-xf64-4pmc-h8qf |
| PyPI | wger | no fix listed | PYSEC-2026-4317 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| wger-project | wger | < 2.6 |
Weakness: CWE-352 · Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
References
- https://github.com/wger-project/wger/security/advisories/GHSA-xf64-4pmc-h8qf x_refsource_CONFIRM
- https://github.com/wger-project/wger/releases/tag/2.6 x_refsource_MISC