CVE-2026-102923
Full vulnerability record from the local CVENow database.
Description
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.
Severity
MEDIUM
CVSS score
5.4
(v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-10-16 16:16:52.707000
Last modified
2026-10-28 19:17:17.430000
View original CVE JSON
{
"id": "CVE-2026-102923",
"sourceIdentifier": "[email protected]",
"published": "2026-10-16T16:16:52.707",
"lastModified": "2026-10-28T19:17:17.430",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "CodeWithCJ",
"product": "SparkyFitness",
"versions": [
{
"version": "< 1.6.0",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N",
"baseScore": 5.4,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.8,
"impactScore": 2.5
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-10-28T18:20:24.682661Z",
"id": "CVE-2026-102923",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-918"
}
]
}
],
"references": [
{
"url": "https://github.com/CodeWithCJ/SparkyFitness/commit/0b43a37003a3fbedf4e38058130460fd4707fe29",
"source": "[email protected]"
},
{
"url": "https://github.com/CodeWithCJ/SparkyFitness/releases/tag/v1.6.0",
"source": "[email protected]"
},
{
"url": "https://github.com/CodeWithCJ/SparkyFitness/security/advisories/GHSA-rmxj-43xh-mcm3",
"source": "[email protected]"
},
{
"url": "https://github.com/CodeWithCJ/SparkyFitness/security/advisories/GHSA-rmxj-43xh-mcm3",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}