Skip to main content

SparkyFitness EUVDEUVD-2026-105090

| CVE-2026-113612 MEDIUM
Missing Authorization (CWE-862)
2026-10-20 VulnCheck GHSA-p92j-4g3m-hx3x
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with low-privileged account
  2. Exploit
    Harvest variant IDs from public food read endpoints
  3. Execution
    Send DELETE to /api/foods/food-variants/:id
  4. Impact
    Destroy victim's serving and nutrition variants

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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) a valid authenticated account on the target SparkyFitness instance (PR:L - any low-privileged user suffices) and (2) knowledge of the target food-variant IDs, which per the description are obtainable from the public food read endpoints for publicly shared foods. The attack therefore only matters on multi-user/shared deployments where foods are publicly shared; a single-user instance has no other victim data to destroy. Limiting factors that reduce realistic risk: authentication is mandatory (not anonymous), impact is confined to deletion of serving/nutrition variant data (no confidentiality disclosure, no code execution, no privilege escalation), and only publicly readable foods' variants are reachable via the ID-harvesting path. No special non-default configuration is otherwise required - the vulnerable DELETE /api/foods/food-variants/:id endpoint lacks the owner check in all versions before 0.17.0.

Impact

This is a medium-severity broken-access-control issue (CVSS 4.0 base 5.3, CWE-862). The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L) is internally consistent with the description: network-reachable endpoint, low attack complexity, but requiring an authenticated low-privileged account (PR:L), with impact limited to integrity and availability of data (VC:N - no data disclosure, no code execution, no scope change). No EPSS score was provided, so exploitation-probability cannot be quantified; there is no CISA KEV listing and no public exploit code referenced, so exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was supplied. Weighing these signals, this is NOT a drop-everything priority: the authentication requirement, the absence of confidentiality or code-execution impact, and the niche product footprint all cap real-world risk, and the only impact is destruction of other users' food-variant data on multi-user/shared instances. It is, however, a legitimate data-integrity bug with a vendor patch available, so remediation by upgrading to 0.17.0 is warranted - particularly on shared/multi-tenant deployments. Missing data to note: no EPSS, no independent exploitation telemetry, and the CVSS vector supplied appears to be the vendor/VulnCheck 4.0 score rather than an NVD-adjudicated one.

Exploit ScenarioDerived

On a shared SparkyFitness instance, a logged-in but otherwise unprivileged user browses publicly shared foods to collect their variant IDs, then issues DELETE /api/foods/food-variants/:id requests for variants they do not own, wiping another user's serving and nutrition data. Because the attack only requires a valid account (PR:L), network access (AV:N), and low complexity (AC:L) with no user interaction, it is trivial to automate against many shared foods; no public proof-of-concept exploit was identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Missing authorization in SparkyFitness before 0.17.0 allows any authenticated user to delete other users' food variants through the DELETE /api/foods/food-variants/:id endpoint, destroying serving and nutrition data attached to publicly shared foods. The flaw is exploitable by low-privileged account holders (PR:L) who harvest variant IDs from the public food read endpoints; no public exploit code has been identified at time of analysis and the issue is not in CISA KEV. Impact is limited to data integrity and availability (no confidentiality loss, no code execution or privilege escalation), and realistically only matters on multi-user deployments where foods are shared publicly.

RemediationAI

Vendor-released patch: upgrade to SparkyFitness v0.17.0 (https://github.com/CodeWithCJ/SparkyFitness/releases/tag/v0.17.0), which contains commit 79215eb4d6dda12262e1bb15b76dceb0e37f6fa1 adding the parent-food ownership check in deleteFoodVariant and reworking the food_variants, workout_preset_exercises, and workout_preset_exercise_sets RLS policies into separate select and modify rules. Because the fix includes SQL policy changes, rebuilding or re-applying the database schema from SparkyFitnessServer/db/rls_policies.sql is required after the application upgrade, otherwise the permissive FOR ALL policy persists and RLS continues to allow cross-user modification. If upgrading is not immediately possible, concrete compensating controls are: disable public food sharing at the application level so variant IDs cannot be harvested from read endpoints (trade-off: removes a collaboration feature and changes user workflows), or restrict the instance to a single trusted user or a closed group of mutually trusting accounts (trade-off: negates multi-tenant use but eliminates the cross-tenant data-destruction path). There is no documented way to block only the DELETE /api/foods/food-variants/:id route at the application level, so a reverse-proxy rule rejecting DELETE requests to that path is a viable stopgap (trade-off: legitimate owners also lose the ability to delete their variants) and can be paired with export/backup of food and variant data to allow recovery from any deletions that do occur. Refer to the vendor advisory for the authoritative fix guidance.

Affected VersionsENISA

SparkyFitness 0 <0.17.0

Affected Packages

euvd sparkyfitness fix: 0.17.0

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

SparkyFitness is a TypeScript/Node.js fitness and nutrition tracker backed by a PostgreSQL database. The affected component is the SparkyFitnessServer service layer, specifically foodCoreService.deleteFoodVariant, which retrieves the variant and its parent food but omits the ownership comparison before issuing the delete. This is CWE-862 (Missing Authorization): the endpoint enforces authentication but not object-level access control, so any valid session can act on another user's record. The vulnerability was compounded at the database layer, where the food_variants table used a single FOR ALL row-level security policy keyed on has_diary_access() rather than the owning user, meaning RLS did not act as a backstop. The upstream fix (commit 79215eb4d6dda12262e1bb15b76dceb0e37f6fa1) adds an explicit foodOwnerId !== authenticatedUserId check that throws a Forbidden error, splits the monolithic RLS policy into separate select and modify policies whose USING/WITH CHECK clauses compare the requesting user against f.user_id, and applies the same select/modify split to workout_preset_exercises and workout_preset_exercise_sets. Regression tests were added covering owner success, missing variant, missing parent food, and cross-user deletion attempts.

Know when Sparkyfitness 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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.4 MEDIUM

Network endpoint (AV:N/AC:L) reachable by any authenticated low-privileged user (PR:L); deleting another user's variant data harms integrity and availability (I:L/A:L) with no data disclosure (C:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

SparkyFitness before 0.17.0 contains a missing authorization vulnerability that allows authenticated users to delete other users' food variants via the DELETE /api/foods/food-variants/:id endpoint. Attackers can use variant IDs from public food read endpoints to delete serving and nutrition variants of publicly shared foods, destroying victims' data.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
niche self-hosted open-source fitness tracker, limited real-world deployment
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
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

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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