CVE-2026-111046
LowCVSS 2.3Summary
In FOSSBilling from 0.8.4 until 0.8.6, hasManagePermission fails open for inactive non-core modules, skipping access checks. A low-privileged staff account can read decrypted extension secrets and overwrite stored configuration of a deactivated module.
Risk Assessment
A low-privileged staff member could access sensitive secrets and modify extension configuration, leading to confidentiality and integrity breaches. The issue persists despite the earlier CVE-2026-62962 fix.
Recommendation
Update FOSSBilling to version 0.8.6 or later. Review staff account permissions and remove unused modules.
Other vulnerabilities in FOSSBilling
See all- CVE-2026-111053Medium
FOSSBilling from 0.1.0 until 0.8.7 has a path traversal vulnerability in the unauthenticated api/guest/system/template_exists endpoint because templateExists uses Path::join on the attacker-controlled file parameter without rejecting .. sequences or verifying the resolved path stays inside the active theme directory. An attacker can determine whether arbitrary files or directories exist on the server.
- CVE-2026-42341Critical
FOSSBilling versions 0.6.0 through 0.7.2 have an unauthenticated payment bypass vulnerability. An attacker can mark any unpaid invoice as paid and credit the client account by sending a single crafted HTTP request to the IPN callback endpoint.
- CVE-2026-33543Critical
FOSSBilling versions 0.7.2 and prior have a vulnerability in the guest API that allows the creation of new administrator accounts even when one already exists. A flaw in the admin existence check enables an attacker to bypass protections.
- CVE-2026-28496Critical
FOSSBilling prior to version 0.8.0 has a Server-Side Template Injection (SSTI) vulnerability in the template rendering system. Administrators can inject arbitrary Twig expressions, leading to information disclosure and remote code execution.
- CVE-2026-27604Critical
FOSSBilling versions 0.5.4 to 0.8.0 have an authorization bypass in API role handling, allowing unauthenticated access to privileged `/api/system/*` endpoints. Attackers can invoke admin API methods without valid credentials.
- CVE-2026-111056Medium
FOSSBilling from 0.1.0 until 0.8.7 has an unauthenticated POST /api/guest/client/create endpoint that reveals whether a submitted email belongs to a registered client by returning a distinct unredacted error. An attacker can compare responses to determine if an email belongs to an existing client.
- CVE-2026-53648Medium
In FOSSBilling prior to version 0.8.1, downloadable product files are stored using a deterministic filename-derived path (MD5 hash). Two different products or order files with the same original filename overwrite each other, causing customers or administrators to receive the wrong file.
- CVE-2026-53647Medium
In FOSSBilling versions 0.5.3 through 0.7.2, the Guest `serviceapikey/get_info` API endpoint is accessible without authentication. Any caller with a valid API key can retrieve all custom configuration parameters (`custom_*` fields) stored in the key's database record.
- CVE-2026-53646High
In FOSSBilling versions 0.5.6 through 0.7.2, when a client requests a password reset multiple times, the system reuses the existing token instead of generating a new one, with the 15-minute validity anchored to the first request. An attacker who obtained the original reset link can still use it even after the victim requests a new reset, as the original token is never invalidated.
- CVE-2026-53645High
FOSSBilling prior to version 0.8.0 contains a vulnerability that allows a low-privileged staff account to escalate privileges via the admin API. A user with the `staff.create_and_edit_staff` permission can call `/api/admin/staff/permissions_update` for their own account and set any permissions, bypassing role-based access control.
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

