Skip to content
Heist/ feed
Back to feed
Medium

SparkyFitness: SSRF via unvalidated custom_url in AI service settings

Type: advisorySources: Official CVE List

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.

Products
SparkyFitness
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-102923
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 23:11 UTC · Revision 2

Source evidence

SparkyFitness: SSRF via unvalidated custom_url in AI service settings

core-cve · Original source

Published 16 Oct 2026, 15:53 UTC

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.

cve:CVE-2026-102923

SparkyFitness

Fixed versions: Not specified

Complete source record
{
  "id": "419a709e8553451166bfcb84f2d9413148cf0f600fa6e8e706372e1e3d5e496f",
  "url": "https://www.cve.org/CVERecord?id=CVE-2026-102923",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "SparkyFitness: SSRF via unvalidated custom_url in AI service settings",
    "summary": "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.",
    "evidence": "cve:CVE-2026-102923",
    "products": [
      {
        "name": {
          "value": "SparkyFitness",
          "evidence": "/containers/cna/affected/0/product"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": []
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-102923",
      "aliases": [
        "CVE-2026-102923"
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "scope": "UNCHANGED",
            "version": "3.1",
            "baseScore": 5.4,
            "attackVector": "NETWORK",
            "baseSeverity": "MEDIUM",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N",
            "integrityImpact": "LOW",
            "userInteraction": "NONE",
            "attackComplexity": "LOW",
            "availabilityImpact": "NONE",
            "privilegesRequired": "LOW",
            "confidentialityImpact": "LOW"
          }
        }
      ],
      "affected": [
        {
          "vendor": "CodeWithCJ",
          "product": "SparkyFitness",
          "versions": [
            {
              "status": "affected",
              "version": "< 1.6.0"
            }
          ]
        }
      ],
      "modified": "2026-10-28T18:20:33.855Z",
      "provider": "cve",
      "references": [
        "https://github.com/CodeWithCJ/SparkyFitness/security/advisories/GHSA-rmxj-43xh-mcm3",
        "https://github.com/CodeWithCJ/SparkyFitness/commit/0b43a37003a3fbedf4e38058130460fd4707fe29",
        "https://github.com/CodeWithCJ/SparkyFitness/releases/tag/v1.6.0"
      ],
      "provider_metadata": {
        "adp": [
          {
            "title": "CISA ADP Vulnrichment",
            "metrics": [
              {
                "other": {
                  "type": "ssvc",
                  "content": {
                    "id": "CVE-2026-102923",
                    "role": "CISA Coordinator",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "version": "2.0.3",
                    "timestamp": "2026-10-28T18:20:24.682661Z"
                  }
                }
              }
            ],
            "references": [
              {
                "url": "https://github.com/CodeWithCJ/SparkyFitness/security/advisories/GHSA-rmxj-43xh-mcm3",
                "tags": [
                  "exploit"
                ]
              }
            ],
            "providerMetadata": {
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP",
              "dateUpdated": "2026-10-28T18:20:33.855Z"
            }
          }
        ],
        "cna": {
          "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
          "shortName": "GitHub_M",
          "dateUpdated": "2026-10-16T15:53:05.454Z"
        }
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-102923",
        "evidence": "/cveMetadata/cveId"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/containers/cna/metrics"
  },
  "source_id": "core-cve",
  "document_id": 472581,
  "published_at": "2026-10-16T15:53:05.454+00:00"
}