Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable endpoint requiring no login (PR:N) returns full portfolio data (C:H) with no integrity/availability impact; the non-guessable access-ID prerequisite is a practical, not base-metric, limiter.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
1DescriptionCVE.org
The GET /api/v1/public/:accessId/portfolio endpoint in ghostfolio accepts private access IDs without validating granteeUserId filtering, allowing unauthenticated access to full portfolio data. Attackers with a private access ID can retrieve sensitive portfolio information including holdings, quantities, buy prices, and performance metrics without authentication.
AnalysisAI
Unauthorized portfolio data exposure in Ghostfolio's public API allows anyone holding a private access ID to read another user's full portfolio through the GET /api/v1/public/:accessId/portfolio endpoint. The endpoint accepts private access IDs without enforcing the granteeUserId filter, so holdings, quantities, buy prices, and performance metrics are returned without authentication. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires the attacker to possess a valid private access ID for the target's Ghostfolio account and to send an unauthenticated HTTP GET to /api/v1/public/:accessId/portfolio; the flaw is that the endpoint does not validate granteeUserId, so no login, session, or being the intended grantee is needed once the ID is held. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) yields 8.7 (High) and reflects network reachability, low complexity, no privileges, and high confidentiality impact with no integrity or availability effect - consistent with a read-only data-exposure bug. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | An attacker who was previously granted-then revoked-private access to a user's Ghostfolio portfolio, or who obtains a leaked private access ID from a browser history, log, or forwarded link, issues a single unauthenticated GET request to /api/v1/public/<accessId>/portfolio. The server returns the victim's complete holdings, quantities, buy prices, and performance metrics. … |
| Remediation | Upstream fix available (PR/commit); released patched version not independently confirmed - apply the change in commit 697ef59e3b58bebc5c21a9e482e4f5643390f316 (github.com/ghostfolio/ghostfolio/commit/697ef59e3b58bebc5c21a9e482e4f5643390f316) by upgrading to the tagged Ghostfolio release that includes it once available, tracking github.com/ghostfolio/ghostfolio/issues/7197 and the VulnCheck advisory for the exact version. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: Identify all Ghostfolio instances in production; review API audit logs for suspicious access to the GET /api/v1/public/:accessId/portfolio endpoint; notify affected users. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42074
GHSA-fqj2-r74g-4gfp