---
id: "CVE-2026-102923"
kind: "vulnerability"
aliases: ["CVE-2026-102923"]
title: "SparkyFitness: custom AI service URL enables server-side request forgery"
severity: "medium"
cvss: 5.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["ai-features", "node.js", "package", "self-hosted", "sparkyfitness"]
not_affected_if: ["managed-hosting", "no-custom-ai-service-urls", "version-1.6.0-or-later"]
published_at: "2026-10-16T16:16:52+00:00"
first_seen_at: "2026-10-23T21:57:13+00:00"
updated_at: "2026-10-25T04:18:32+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-102923", "first_seen_at": "2026-10-23T21:57:13+00:00"}]
---

# SparkyFitness: custom AI service URL enables server-side request forgery

SparkyFitness, a self-hosted health tracker, does not validate destination URLs entered for custom AI services in its chat and label-scan flows. A logged-in user can make the server send POST requests with a chosen bearer value to internal services and read the AI system prompt.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed SparkyFitness version; versions before `1.6.0` are affected.
- Look in the admin or user AI service settings for any custom AI service URL that points at internal addresses.
- Review server logs for outbound requests from the SparkyFitness server to internal hosts.

## Fix

- Upgrade SparkyFitness to `1.6.0` or later.
- Until upgraded, restrict who can save custom AI service settings and block the server's outbound access to internal networks.

## Timeline

- 2026-10-23T21:57:13+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-102923

## From the sources

SparkyFitness is a self-hosted, AI-powered health and fitness tracker for families. Prior to 1.6.0, SparkyFitnessServer/services/chatService.ts and SparkyFitnessServer/services/labelScanService.ts do not validate destinations supplied in custom AI service settings. An authenticated user saves a custom AI service URL and invokes an affected AI flow. The user can save a custom AI service URL and trigger an outbound request. Successful exploitation can send server-side POST requests with a controlled bearer value, probe internal services, and disclose the AI system prompt. This issue is fixed in version 1.6.0.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
