Skip to main content

GYM One CVE-2026-55872

| EUVDEUVD-2026-102308 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-15 GitHub_M
8.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain account able to store profile fields
  2. Delivery
    Inject script into firstname/lastname/email
  3. Exploit
    Administrator opens /admin/users/
  4. Execution
    Payload executes in admin session
  5. Impact
    Hijack session or act as administrator

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires (1) an attacker who can store values in the firstname, lastname, or email profile fields of a GYM One user record prior to version 1.4.1 - i.e. an account or registration path with write access to those fields (consistent with CVSS PR:L), and (2) an administrator subsequently visiting the user-management list at /admin/users/, which renders those fields without HTML output encoding (CVSS UI:R). The payload persists and re-triggers on every admin view until the offending record is deleted. Limiting factors: it is not fire-and-forget - it depends on administrator interaction with that specific page, on some level of prior access to store the data, and on the instance running a version below 1.4.1; upgrading to 1.4.1 removes the condition entirely.

Impact

This is a stored (persistent) cross-site scripting flaw (CWE-79) in GYM One's admin/users/index.php, which renders attacker-controllable firstname, lastname, and email profile fields into the administrator user list without HTML output encoding. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N, base 8.7) is internally consistent with the description: network-reachable, low attack complexity, requires some privilege (PR:L - an account able to store those profile values), requires the administrator to visit /admin/users/ (UI:R), and crosses a scope boundary (S:C) because the payload executes in the privileged administrator's browser context yielding high confidentiality and integrity impact. No EPSS score, KEV listing, or public POC was supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the 8.7 rating reflects potential technical impact, not demonstrated real-world weaponization. Realistic priority is tempered by two factors the signals make explicit: exploitation depends on an administrator actually opening the user-management page (UI:R), and on the product being a niche open-source gym-management application with a very small deployment footprint. SSVC-style reasoning: exploitation status is 'none observed', the attack is not automatable (it hinges on administrator interaction and prior data storage), and technical impact is total for the admin session - netting a moderate, patch-when-practical priority rather than an emergency. Missing data to note: no EPSS, no KEV, and no independent POC confirmation.

Exploit ScenarioDerived

A low-privileged user (or a self-registered member, depending on deployment) sets their firstname, lastname, or email profile field to a value containing an HTML/script payload. The payload is stored and later rendered unescaped when an administrator opens the user list at /admin/users/, executing in the admin's authenticated session to steal session data or perform actions with administrator privileges. No public exploit code was identified at time of analysis; exploitation requires the administrator to view the affected page.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 – Oct 15, 2026

Stored cross-site scripting in GYM One (all releases prior to 1.4.1) lets an attacker who can write to a user record's firstname, lastname, or email profile fields inject persistent JavaScript that executes in an administrator's browser whenever the administrator opens the user-management page at /admin/users/. Because the injected payload is rendered in the administrator's session, it can read or act on administrator-session data and perform privileged actions with the victim's rights until the poisoned record is removed; the CVSS 3.1 vector scores 8.7 (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N), reflecting the required low-privilege write access and the administrator's page visit as a user-interaction prerequisite, with scope change since the low-privileged author gains the administrator's privileges. The issue is fixed in version 1.4.1 per the vendor advisory and release tag, and no public exploit code was identified at time of analysis.

RemediationAI

Upgrade to GYM One 1.4.1 or later, which is the vendor-confirmed fixed release referenced by https://github.com/mayerbalintdev/GYM-One/releases/tag/V1.4.1 and the advisory at https://github.com/mayerbalintdev/GYM-One/security/advisories/GHSA-75g9-vp9w-5388; the corresponding fix commit is d3a0cf134f0ab3ac12aee7dca283b93c4290dcc4. Because the payload is stored rather than reflected, patching alone does not clean existing data: after upgrading, audit and sanitize the firstname, lastname, and email columns in the users table, removing or re-encoding any records containing HTML, script tags, or event-handler attributes, since a previously poisoned record will otherwise continue to be served to administrators. If upgrading cannot be done immediately, compensating controls include applying output encoding (PHP htmlspecialchars() with ENT_QUOTES|ENT_HTML5 on the affected columns) in admin/users/index.php before rendering - a tightly scoped change that must be re-applied after any upstream update; restricting access to /admin/users/ by IP allow-list or placing the admin panel behind HTTP authentication so untrusted parties cannot trigger the stored payload - noting that this stops the delivery vector but not the underlying data corruption, and administrators will still execute any remaining payload when they legitimately visit the page; and hardening administrator sessions with HttpOnly and SameSite=Strict cookie flags to blunt cookie theft and cross-site request forgery via the injected script, though same-origin script can still perform privileged actions through the admin UI, so this reduces rather than removes impact. No vendor-released patch beyond the 1.4.1 upgrade path was identified, and no public exploit code was identified at time of analysis.

Affected VersionsENISA

GYM-One < 1.4.1

Affected Packages

euvd gym_one fix: 1.4.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

This is a classic persistent (stored) cross-site scripting flaw, CWE-79 (Improper Neutralization of Input During Web Page Generation). GYM One is an open-source PHP gym-management application; in versions before 1.4.1 the administrator user list rendered by admin/users/index.php echoes the stored firstname, lastname, and email profile columns directly into the generated HTML without output encoding (e.g. htmlspecialchars()/htmlentities()), so any attacker-controlled markup saved into those fields is re-emitted as live HTML/JavaScript on every page load rather than as inert text. The affected product is identified by CPE cpe:2.3:a:mayerbalintdev:gym-one:*:*:*:*:*:*:*:* with no version constraints, i.e. all builds below the 1.4.1 fix. The root cause is the textbook missing-encoding defect on the output path, and because the payload is stored in the database rather than reflected, it re-triggers on every administrator visit to the users list - it is not fire-and-forget. The CVSS vector's scope change (S:C) captures the boundary crossing from a low-privileged account's stored data into the trusted administrator context: script executing on the admin origin can reach session cookies or tokens not marked HttpOnly, issue state-changing requests to the admin panel with the victim's credentials, or exfiltrate the user list and other administrative views. The vendor's referenced commit d3a0cf134f0ab3ac12aee7dca283b93c4290dcc4 is cited as the fix commit, though the supplied diff excerpt consists largely of license and code-of-conduct churn rather than the encoding change itself.

Know when Gym One 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 (GitHub_M) PRIMARY 8.7 HIGH
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 8.7 HIGH

Stored XSS reachable over the network (AV:N/AC:L); storing the field needs an account (PR:L); admin must view the page (UI:R); execution in admin's browser crosses scope (S:C) giving C:H/I:H, no availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 20:03 EUVD
CVE Published
Oct 15, 2026 - 18:27 cve.org
HIGH 8.7

DescriptionCVE.org

GYM One is open-source gym management software for fitness centers, personal trainers, and sports clubs. Prior to 1.4.1, GYM One's admin/users/index.php renders the stored firstname, lastname, and email profile fields into the administrator user list without HTML output encoding. An attacker who can store values in those fields can cause content to execute in an administrator's browser when the administrator visits /admin/users/. The persistent script can access administrator-session data or perform actions with the administrator's privileges until the stored record is removed. This issue is fixed in version 1.4.1.

Technical POC Analysis

Stored cross-site scripting (CWE-79) in GYM-One's administrator user list.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

GYM One (all releases prior to 1.4.1) is affected by a high-severity stored cross-site scripting vulnerability that allows an authenticated low-privilege user to inject persistent malicious code into profile fields, which then executes in an administrator's browser when the admin opens the user-management page. No public exploit identified at time of analysis. This could enable the attacker to perform privileged actions with the administrator's rights, potentially leading to unauthorized access, data theft, or service disruption, and security leadership should prioritize remediation because the attack requires only a standard user account and a routine admin page visit.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Rare
obscure single-maintainer open-source gym app, tiny real-world footprint
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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