Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach unauthenticated guest API endpoint
-
DeliverySubmit '../' traversal in file parameter
-
ExploittemplateExists resolves path outside theme dir
-
ExecutionObserve returned boolean
-
ImpactEnumerate existence of sensitive files/paths
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special configuration is required: exploitation needs only network reachability to the unauthenticated api/guest/system/template_exists endpoint on any FOSSBilling instance in the 0.1.0-0.8.6 range, and the attacker must supply '..' traversal sequences in the file parameter because templateExists calls Path::join on attacker-controlled input without rejecting '..' or confirming the resolved path stays inside the active theme directory. The principal LIMITING factor is impact scope, not access: the endpoint returns only a boolean indicating file/directory existence and never discloses contents, so the practical outcome is a filesystem-existence oracle for reconnaissance rather than data theft or execution. No authentication (PR:N) and no user interaction (UI:N) are needed. |
| Impact | This is a moderate, bounded-impact vulnerability whose signals are internally consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) correctly reflects a remote, unauthenticated, low-complexity attack against the api/guest/system/template_exists endpoint, and the single Low confidentiality impact (VC:L, with VI:N/VA:N) accurately captures that this is an existence oracle, not a file-read or code-execution bug - the description explicitly states 'The oracle does not disclose file contents.' No EPSS score, CISA KEV listing, or public POC is present in the provided data, so there is no evidence of active exploitation; exploitation status is 'no public exploit identified at time of analysis.' The 6.9 (Medium) score is appropriate and not inflated: real-world risk is primarily reconnaissance value (confirming presence of sensitive files/paths, mapping server layout) that could feed a follow-on attack, rather than direct compromise. Overall this is a legitimate but low-urgency fix - prioritize patching to 0.8.7, but it is not a drop-everything issue absent evidence of chaining to a higher-impact flaw. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a request to guest/system/template_exists with '../' traversal sequences in the file parameter (e.g. pointing at ../../../../etc/passwd or a config/backup path). By reading the returned boolean, the attacker confirms whether specific files or directories exist outside the active theme directory, enabling server fingerprinting and target reconnaissance. No public exploit code is identified in the provided data, but the attack is trivial to script given AV:N and AC:L. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
An unauthenticated path-traversal flaw in FOSSBilling 0.1.0 through 0.8.6 turns the guest API endpoint api/guest/system/template_exists into a filesystem existence oracle: a remote attacker can pass '..' sequences in the file parameter and read the returned boolean to learn whether arbitrary files or directories exist on the server. No credentials or user interaction are required, but the endpoint never returns file contents, so the practical impact is reconnaissance-grade information disclosure (confirmed file/directory layout) rather than data theft or code execution - which is why the reporter's CVSS 4.0 score of 6.9 sits above the independent assessment's moderate CVSS 3.1 rating (C:L only). No public exploit code was identified at time of analysis and there is no CISA KEV listing; the issue is fixed in 0.8.7.
RemediationAI
Upgrade to FOSSBilling 0.8.7 or later (vendor-released patch: 0.8.7), which validates the file parameter and constrains the resolved path to the active theme directory - see the advisory https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-fm3x-cx5r-wwgp and release https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.7. If upgrading must be deferred, the most effective compensating control is to block unauthenticated requests to /api/guest/system/template_exists at the reverse proxy or WAF, rejecting any request whose query string contains '..' (encoded or double-encoded) and returning 403; this is low-risk because the endpoint is a template-existence check used mainly by theme/editor workflows, but it may break admin theme previews or third-party integrations that legitimately call it. Disabling the guest API namespace entirely removes the exposure but will break storefront/order flows that rely on unauthenticated endpoints, so scope the block to this route specifically. As a lower-friction measure, keep the FOSSBilling web-server user's filesystem privileges minimal and move secrets (config files, .env, storage keys) outside the document root, so that even successful existence probing yields little actionable reconnaissance; note that none of these workarounds remove the underlying oracle, they only reduce its reachability or value. Detection-wise, review access logs for guest/system/template_exists requests containing '..' sequences.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FOSSBilling is a PHP billing and client-management application (Composer-managed, PHP 8.3+ 64-bit runtime). The vulnerable code path is the unauthenticated guest API route guest/system/template_exists, whose templateExists handler builds a candidate path with Path::join on the attacker-supplied file parameter. Because the helper neither rejects '..' segments nor canonicalizes the joined result and asserts it is still contained within the active theme directory, traversal sequences escape the intended root - the classic CWE-22 improper limitation of a pathname to a restricted directory. The handler returns only a boolean (the resolved path exists or not) and never streams or echoes file data, so the primitive is strictly an oracle: it confirms existence of files and directories reachable by the web-server user. Note the 'template' framing is misleading for defenders - the traversal reaches outside the theme tree entirely. The affected CPE range is cpe:2.3:a:fossbilling:fossbilling:* (all versions from 0.1.0 up to, but not including, 0.8.7).
Know when Fossbilling gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated endpoint (AV:N/PR:N/UI:N) with trivial traversal payload (AC:L); only a boolean existence oracle leaks minor info, so C:L and I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
FOSSBilling is an open source billing and client-management platform. From 0.1.0 until 0.8.7, the unauthenticated api/guest/system/template_exists endpoint permits path traversal because templateExists uses Path::join on the attacker-controlled file parameter without rejecting .. sequences or verifying that the resolved path remains inside the active theme directory. The trigger is an unauthenticated request to guest/system/template_exists containing traversal sequences in the file parameter. An attacker can submit traversal sequences in the file parameter and observe the returned boolean to determine whether arbitrary files or directories exist on the server. The oracle does not disclose file contents. This issue is fixed in version 0.8.7.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
More in Fossbilling
View allAuthorization bypass in FOSSBilling versions 0.5.4 through 0.7.x allows unauthenticated remote attackers to invoke privi
SQL Injection in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated critical severity (CVSS 9.8), this vuln
Server-side template injection in FOSSBilling versions prior to 0.8.0 allows authenticated administrators to execute arb
Unrestricted Upload of File with Dangerous Type in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated high
Missing Authorization in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated high severity (CVSS 7.5), this
Code Injection in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated high severity (CVSS 7.2), this vulnera
Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 6.5), thi
Cross-site Scripting (XSS) - Reflected in GitHub repository fossbilling/fossbilling prior to 0.5.4. Rated medium severit
Insufficient Session Expiration in GitHub repository fossbilling/fossbilling prior to 0.5.5. Rated critical severity (CV
Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 5.7), thi
Insufficient Granularity of Access Control in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium sev
Session Fixation in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated medium severity (CVSS 5.4), this vul
EUVD-2026-104416
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB