Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged staff with extension access
-
ExploitTarget a deactivated non-core module
-
ExecutionInvoke api/admin/extension/config_get or config_save
-
ImpactRead decrypted retained secrets and overwrite stored config
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated low-privileged staff account that already holds module-level extension access (PR:L); the account does NOT need the extension.manage_extensions permission, which is the core of the flaw. The targeted module must be a non-core module that is currently deactivated/inactive (the AT:P attack requirement) - the vulnerable early return in hasManagePermission on !isExtensionActive only triggers for inactive non-core modules, so active modules and core modules are not reachable via this path. The attacker must invoke api/admin/extension/config_get (to read decrypted retained secrets) or api/admin/extension/config_save (to overwrite stored configuration) for that specific module. Limiting factors: valid staff authentication is mandatory, exploitation is scoped to one deactivated non-core module, there is no availability impact, and fixed installations on 0.8.6 enforce the manage_extensions check. |
| Impact | This is a low-priority authorization flaw, not an urgent threat. The vendor-supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N) scores only 2.3 and the signals are internally consistent: network reachable but requiring an authenticated low-privileged staff account (PR:L) that already holds module-level extension access, plus a specific precondition (AT:P) that the targeted non-core module be deactivated. There is no CISA KEV listing and no public exploit code identified at time of analysis; a patch diff (PR #4184) is public, which aids reverse-engineering but is not itself a weaponized POC. No EPSS value was supplied in the input, so exploitation probability cannot be quantified. The real-world impact is bounded - confidentiality and integrity are rated Low (read of retained decrypted extension secrets and overwrite of stored extension config for one deactivated module), with no availability impact and no scope change. This is a defense-in-depth gap (hasManagePermission fails open) that primarily matters as an insider/privilege-boundary issue rather than a remote unauthenticated breach. Note the Tags label it 'Authentication Bypass' while CWE-862 and the description describe a missing-authorization (authorization bypass) condition - verify terminology with the advisory. |
| Exploit ScenarioDerived | A low-privileged FOSSBilling staff member who holds module-level extension access, but not the manage_extensions permission, calls api/admin/extension/config_get against a deactivated non-core module and receives its decrypted retained secrets, then uses config_save to overwrite that module's stored configuration. No public exploit code exists, but the fix commit publicly reveals the vulnerable fail-open path. Exploitation is authenticated and limited to a single deactivated module at a time. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
FOSSBilling 0.8.4 through 0.8.5 has an authorization gap where hasManagePermission returns early for inactive non-core modules, letting a low-privileged staff account that holds only module-level extension access read decrypted retained extension secrets via api/admin/extension/config_get and overwrite stored extension configuration via config_save without holding the extension.manage_extensions permission. Exploitation is authenticated (PR:L) and limited to deactivated non-core modules, with low confidentiality and integrity impact and no availability impact, which is why the vendor-assigned and independently assessed severity are both low. There is no public exploit code and no confirmed active exploitation (no public exploit identified at time of analysis); the flaw is resolved in 0.8.6 and is a residual path left over from the earlier CVE-2026-62962 authorization fix.
RemediationAI
Upgrade to FOSSBilling 0.8.6, which is the vendor-released patch for this issue and enforces the extension.manage_extensions permission for inactive non-core modules while adding an independent authorization check inside getConfig(); the fix is contained in PR https://github.com/FOSSBilling/FOSSBilling/pull/4184 and commit https://github.com/FOSSBilling/FOSSBilling/commit/7a7a30984b58cd1008a573fc70296a7653d8ae04, with release notes at https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.6 and the advisory at https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-3g7m-ph2r-jhcx. If upgrading must be deferred, fully uninstall unused non-core extensions rather than merely deactivating them so that retained (and decryptable) configuration is removed from storage - the trade-off is loss of saved settings if the extension is later reinstalled. Additionally, review staff permission groups and remove module-level extension access from accounts that do not operationally need it, which narrows the attacker population to staff already holding manage_extensions; this may disrupt workflows for staff who legitimately configure individual modules. Rotate any third-party API keys, payment credentials, or other secrets that were stored in a non-core extension's configuration while it was deactivated, since disclosure cannot be ruled out from logs alone, and audit admin API access logs for calls to api/admin/extension/config_get or config_save referencing inactive modules. Note that no vendor-released patch exists for any version earlier than 0.8.6, so backporting the authorization branch from the referenced commit is the only alternative for pinned deployments.
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 built on a dependency-injection container with modular extensions; admin API endpoints are dispatched through controllers such as Box\Mod\Extension\Controller\Admin, which delegate authorization to Service::hasManagePermission in src/modules/Extension/Service.php before performing sensitive extension operations. The root cause is CWE-862 (Missing Authorization): hasManagePermission contains an early return on !isExtensionActive that was intended to short-circuit permission checks for modules that are not loaded, but as a side effect it also skips the module-access check and the manage_settings check, so the function fails open for deactivated non-core modules. Because the check returns instead of throwing, callers proceed to getConfig(), which returns the decrypted stored configuration even while the module is inactive - meaning secrets retained from a previously enabled extension remain readable, and config_save can overwrite that stored configuration. The upstream fix in PR 4184 adds an explicit checkPermissionsAndThrowException('extension', 'manage_extensions') branch for inactive modules (so installation-time default configuration can still be written by extension administrators) and adds defense-in-depth authorization inside getConfig() itself, plus new unit tests asserting a 403 for staff lacking manage_extensions and success for those holding it. Core modules and active modules are not reachable through this path.
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:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Authenticated staff (PR:L) over the admin API (AV:N); AC:H reflects the required deactivated-non-core-module precondition; C:L/I:L for reading secrets and overwriting config, no availability impact (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.8.4 until 0.8.6, hasManagePermission fails open for inactive non-core modules because its early return on !isExtensionActive skips the module-access and manage_settings checks. A low-privileged staff account with module-level extension access targets a deactivated non-core module through extension/config_get or extension/config_save. The account can call api/admin/extension/config_get or api/admin/extension/config_save for a deactivated non-core module to read decrypted retained extension secrets and overwrite stored extension configuration. The getConfig function returns the decrypted stored configuration despite the module's inactive state. This residual path remained after the earlier CVE-2026-62962 authorization fix. This issue is fixed in version 0.8.6.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-104415
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB