Description
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.
Published: 2026-07-07
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The GET /api/v1/public/:accessId/portfolio endpoint in Ghostfolio accepts private access identifiers without validating the granteeUserId, creating a Missing Authorization flaw (CWE‑862). As a result, users who obtain any private access ID can retrieve the entire contents of the associated portfolio—holdings, quantities, purchase prices, and performance metrics—without authenticating at all. This vulnerability directly compromises the confidentiality of user investment information.

Affected Systems

This flaw affects installations of the Ghostfolio application that expose the /api/v1/public/:accessId/portfolio endpoint. Any deployment of the Ghostfolio product that has not applied protective changes to enforce granteeUserId filtering is vulnerable; version details are not specified in the advisory, implying that all current builds are potentially affected.

Risk and Exploitability

The issue carries a CVSS score of 8.7, indicating a high severity level. The EPSS score is listed as < 1%, meaning that, while exploitation probability is currently very low, it is not zero, and the vulnerability is not currently in CISA’s KEV catalog. An attacker must first acquire a valid private access ID, a step not described in the advisory; once the ID is known the endpoint can be queried from any location to extract the portfolio data.

Generated by OpenCVE AI on July 26, 2026 at 19:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest vendor patch or upgrade the Ghostfolio instance to a version that enforces granteeUserId filtering on the public portfolio endpoint.
  • Add an explicit authorization guard to the /api/v1/public/:accessId/portfolio route so that only requests accompanied by a valid, authenticated user context are allowed to proceed behind standard user authentication.
  • Regenerate all existing private access IDs, store them securely, and rotate them regularly to limit the window of opportunity for unauthorized disclosure.

Generated by OpenCVE AI on July 26, 2026 at 19:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 08 Jul 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 07 Jul 2026 21:30:00 +0000

Type Values Removed Values Added
First Time appeared Ghostfolio
Ghostfolio ghostfolio
Vendors & Products Ghostfolio
Ghostfolio ghostfolio

Tue, 07 Jul 2026 19:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Ghostfolio - Unauthorized Portfolio Data Exposure via Public Endpoint
First Time appeared Ghostfol
Ghostfol ghostfolio
Weaknesses CWE-862
CPEs cpe:2.3:a:ghostfol:ghostfolio:*:*:*:*:*:*:*:*
Vendors & Products Ghostfol
Ghostfol ghostfolio
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.7, 'vector': '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'}


Subscriptions

Ghostfol Ghostfolio
Ghostfolio Ghostfolio
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-20T17:46:01.364Z

Reserved: 2026-07-06T15:31:46.188Z

Link: CVE-2026-59708

cve-icon Vulnrichment

Updated: 2026-07-08T13:43:57.078Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T19:15:03Z

Weaknesses