Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privileged account
-
ExploitHarvest variant IDs from public food read endpoints
-
ExecutionSend DELETE to /api/foods/food-variants/:id
-
ImpactDestroy 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Sparkyfitness
View allSparkyFitness v0.15.8.2 is vulnerable to Cross Site Scripting (XSS) via user input and LLM output. [CVSS 6.1 MEDIUM]
OS command injection in SparkyFitness versions prior to 1.6.0 allows an authenticated global administrator to execute ar
Server-side request forgery in SparkyFitness (self-hosted AI health and fitness tracker) before version 1.6.0 lets an au
EUVD-2026-105090
GHSA-p92j-4g3m-hx3x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB