Skip to main content

FOSSBilling CVE-2026-111046

| EUVDEUVD-2026-104415 LOW
Missing Authorization (CWE-862)
2026-10-19 GitHub_M
2.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged staff with extension access
  2. Exploit
    Target a deactivated non-core module
  3. Execution
    Invoke api/admin/extension/config_get or config_save
  4. Impact
    Read 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

FOSSBilling 0.8.4, < 0.8.6

Affected Packages

euvd fossbilling fix: 0.8.6

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

Vendor (GitHub_M) PRIMARY 2.3 LOW
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
vuln.today AI 4.2 MEDIUM

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).

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 19, 2026 - 17:17 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
niche open-source billing/client-management platform, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-27604 CRITICAL POC
10.0 Jun 23

Authorization bypass in FOSSBilling versions 0.5.4 through 0.7.x allows unauthenticated remote attackers to invoke privi

CVE-2023-3490 CRITICAL POC
9.8 Jun 30

SQL Injection in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated critical severity (CVSS 9.8), this vuln

CVE-2026-28496 CRITICAL POC
9.4 Jun 23

Server-side template injection in FOSSBilling versions prior to 0.8.0 allows authenticated administrators to execute arb

CVE-2023-3491 HIGH POC
8.8 Jun 30

Unrestricted Upload of File with Dangerous Type in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated high

CVE-2023-3230 HIGH POC
7.5 Jun 14

Missing Authorization in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated high severity (CVSS 7.5), this

CVE-2023-3393 HIGH POC
7.2 Jun 23

Code Injection in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated high severity (CVSS 7.2), this vulnera

CVE-2023-3229 MEDIUM POC
6.5 Jun 14

Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 6.5), thi

CVE-2023-3521 MEDIUM POC
6.1 Jul 06

Cross-site Scripting (XSS) - Reflected in GitHub repository fossbilling/fossbilling prior to 0.5.4. Rated medium severit

CVE-2023-4005 CRITICAL
9.8 Jul 31

Insufficient Session Expiration in GitHub repository fossbilling/fossbilling prior to 0.5.5. Rated critical severity (CV

CVE-2023-3228 MEDIUM POC
5.7 Jun 14

Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 5.7), thi

CVE-2023-3227 MEDIUM POC
5.7 Jun 14

Insufficient Granularity of Access Control in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium sev

CVE-2023-3394 MEDIUM POC
5.4 Jun 23

Session Fixation in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated medium severity (CVSS 5.4), this vul

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy