CVE-2026-40353 wger: Stored XSS via Unescaped License Attribution Fields
An authenticated user can inject malicious JavaScript into license fields, leading to stored XSS that executes in other users' browsers.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- None listed
What is CVE-2026-40353?
CVE-2026-40353 is a medium-severity cross-site scripting vulnerability in wger-project wger, published on 17 Apr 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Official description
wger is a free, open-source workout and fitness manager. In versions 2.5 and below, the attribution_link property in AbstractLicenseModel constructs HTML by directly interpolating user-controlled license fields (such as license_author) without escaping, and templates render the result using Django's |safe filter. An authenticated user can create an ingredient with a malicious license_author value containing JavaScript, which executes in the browser of any visitor viewing the ingredient page, resulting in stored XSS. This issue has been fixed in version 2.5.
Weakness: CWE-79
Which versions are affected by CVE-2026-40353?
3 open source packages ship an affected version, including wger. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
wger PyPI | All versions to 2.4 | None |
wger PyPI | All versions to 2.4 | None |
wger PyPI | All versions to 2.4 | None |
Products include Wger Wger.
How do I fix CVE-2026-40353?
No fix has been published for CVE-2026-40353 yet. Limit exposure of the affected software until one is available.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2026-40353 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-40353 exists.
Other vulnerabilities in wger-project wger
- CVE-2022-2650 Improper Restriction of Excessive Authentication Attempts in wger-project/wger
- CVE-2026-40474 wger has Broken Access Control in the Global Gym Configuration Update Endpoint
- CVE-2026-27835 wger: IDOR in RepetitionsConfig and MaxRepetitionsConfig API leak other users' workout data
- CVE-2026-27839 wger: IDOR in nutritional_values endpoints exposes private dietary data via direct ORM lookup
- CVE-2026-27838 wger: IDOR via user-unscoped cache keys on routine API actions exposes workout data
Sources
Also known as GHSA-6f54-qjvm-wwq3, PYSEC-2026-3419.