CVE-2026-40495 in FOSSBillinginfo

Summary

by MITRE • 06/03/2026

FOSSBilling is a free, open-source billing and client management system. Versions prior to 0.8.0 leak the exact system version through asset cache buster parameters in HTML output, bypassing the `hide_version_public` security setting. The FOSSBilling version is embedded in the query string of every `` and `` tag generated by the `script_tag` and `stylesheet_tag` Twig filters. This information is visible to all visitors — including unauthenticated guests — on every page, regardless of whether the `hide_version_public` setting is enabled. The `X-FOSSBilling-Version` HTTP header and the `guest.system.version` API endpoint correctly honour the `hide_version_public` setting, but the asset cache buster parameters were overlooked. Knowledge of the exact FOSSBilling version makes it significantly easier for malicious actors to identify known vulnerabilities applicable to a given installation and craft targeted exploits. While not a direct vulnerability on its own, it undermines the intended protection offered by the `hide_version_public` setting and facilitates reconnaissance. Version 0.8.0 contains a patch. There is no practical workaround that removes the version from asset URLs without modifying source code.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 06/04/2026

The vulnerability in FOSSBilling represents a critical information disclosure flaw that undermines the system's security posture through improper version obfuscation. This issue affects all versions prior to 080 and stems from the application's failure to properly implement the `hide_version_public` security setting. The core technical flaw manifests in how FOSSBilling generates asset URLs through Twig filters, specifically the `script_tag` and `stylesheet_tag` functions that embed the exact system version within cache buster parameters. These parameters appear in the query string of every script and stylesheet tag, making the precise version information accessible to any visitor regardless of authentication status. This design flaw directly contradicts the intended security configuration that should hide version information from public view, creating a significant reconnaissance opportunity for threat actors.

The operational impact of this vulnerability extends beyond simple information disclosure, as it provides attackers with precise version data that enables targeted exploitation strategies. When malicious actors can identify the exact FOSSBilling version through cache buster parameters, they gain immediate access to a comprehensive database of known vulnerabilities specific to that version. This information dramatically reduces the time and effort required to discover exploitable weaknesses, as attackers no longer need to perform version enumeration through other means. The vulnerability creates an attack surface that facilitates automated scanning and exploitation tools, making installations more susceptible to known exploits that could lead to full system compromise. This type of information disclosure aligns with CWE-200 (Information Exposure) and represents a failure in proper input validation and output sanitization practices.

The security implications become particularly severe when considering that other system components correctly honor the `hide_version_public` setting, including the `X-FOSSBilling-Version` HTTP header and the `guest.system.version` API endpoint. This selective implementation inconsistency creates a false sense of security for administrators who might believe their system is properly configured to hide version information. The vulnerability demonstrates a critical oversight in the security review process where asset handling code was not properly evaluated against existing security controls. From an attack perspective, this flaw maps directly to ATT&CK technique T1592 (Get Publicly Available Information) and T1590 (Reconnaissance) as it provides attackers with essential system information that would otherwise require more time-consuming enumeration techniques. The fact that version 080 contains a patch indicates this was a recognized issue that required source code modification to resolve, as no practical workaround exists to remove version information from asset URLs without code changes. This vulnerability highlights the importance of comprehensive security testing across all application components, particularly those involved in asset delivery and URL generation, ensuring that security settings are consistently applied throughout the entire application stack.

Responsible

GitHub M

Reservation

04/13/2026

Disclosure

06/03/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!