Description
FOSSBilling is a free, open-source billing and client management system. Prior to version 0.8.0, the password reset confirmation endpoint `/client/reset-password-confirm/:hash` is handled by a non-API controller and is not covered by FOSSBilling's rate limiter, which only applies to `/api/*` routes. This allows an attacker to probe the endpoint for valid reset tokens without any per-IP request limiting, attempt counting, or lockout mechanism. The endpoint acts as an oracle, returning a distinguishable response for valid versus invalid tokens (HTTP 200 vs HTTP 302 redirect). An attacker can submit unlimited token guesses to the password reset confirmation endpoint with no throttling applied. However, practical exploitability is significantly mitigated by the current token generation, which uses `hash('sha256', random_bytes(32))`, providing 256 bits of entropy. Tokens also expire after 15 minutes and are deleted after successful use. The same architectural gap applies to other controller-served auth routes, including `/staff/email/:hash` (admin password reset confirmation) and `/client/confirm-email/:hash` (email confirmation). Version 0.8.0 fixes the issue. Some workarounds are available. Configure a reverse proxy (e.g., Nginx, Apache, Cloudflare) to apply per-IP rate limiting to the `/client/reset-password-confirm/*` and `/staff/email/*` paths and/or use a WAF rule to limit request rates to these endpoints.
Published: 2026-06-04
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

FOSSBilling's password reset confirmation endpoint lacks rate limiting, turning the endpoint into an oracle that distinguishes valid reset tokens from invalid ones by returning HTTP 200 for a valid hash and HTTP 302 for an invalid one. An attacker can submit unlimited guesses without per‑IP request limiting, enabling brute‑force enumeration of active password‑reset tokens. While the token generator employs SHA‑256 over 32 random bytes yielding 256 bits of entropy and the tokens expire after 15 minutes or are removed after use, the absence of rate limiting still permits excessive probing, which can facilitate account takeover or reveal which emails have active reset requests. This flaw meets CWE‑307 (Improper Restriction of Excessive Authentication Attempts) and CWE‑204 (Information Exposure Through Error Messages).

Affected Systems

The vulnerability affects all public installations of FOSSBilling that used a version earlier than 0.8.0, including the community edition. No specific sub‑version numbers are mentioned, but any release derived from the code base before the 0.8.0 release is subject to the lack of rate limiting on the /client/reset-password-confirm/:hash endpoint, as well as the analogous /staff/email/:hash and /client/confirm-email/:hash routes.

Risk and Exploitability

The CVSS score of 6.3 indicates a medium‑severity weakness. Because the EPSS score is unavailable, exploitation probability cannot be quantified, but the flaw remains relevant as attackers can observe response differences. The issue is not listed in the CISA KEV catalog, suggesting it is not currently a widely reported exploited vulnerability, yet the design flaw gives an attacker a convenient oracle that can be used for token enumeration. The attack vector is primarily remote, via HTTP requests to the affected endpoints, and requires no privileged access prior to initiating guesses. Mitigation is straightforward through application of the 0.8.0 update or by implementing external rate limiting.

Generated by OpenCVE AI on June 4, 2026 at 14:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to FOSSBilling 0.8.0 or newer to incorporate the fixed rate limiting on the password‑reset confirmation endpoint.
  • Configure a reverse proxy (such as Nginx or Apache) to apply per‑IP rate limiting to the /client/reset-password-confirm/* and /staff/email/* paths.
  • Optionally, set up a Web Application Firewall rule that throttles request rates for those endpoints if a reverse proxy is not used.

Generated by OpenCVE AI on June 4, 2026 at 14:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 04 Jun 2026 15:45:00 +0000

Type Values Removed Values Added
First Time appeared Fossbilling
Fossbilling fossbilling
Vendors & Products Fossbilling
Fossbilling fossbilling

Thu, 04 Jun 2026 15:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 04 Jun 2026 13:30:00 +0000

Type Values Removed Values Added
Description FOSSBilling is a free, open-source billing and client management system. Prior to version 0.8.0, the password reset confirmation endpoint `/client/reset-password-confirm/:hash` is handled by a non-API controller and is not covered by FOSSBilling's rate limiter, which only applies to `/api/*` routes. This allows an attacker to probe the endpoint for valid reset tokens without any per-IP request limiting, attempt counting, or lockout mechanism. The endpoint acts as an oracle, returning a distinguishable response for valid versus invalid tokens (HTTP 200 vs HTTP 302 redirect). An attacker can submit unlimited token guesses to the password reset confirmation endpoint with no throttling applied. However, practical exploitability is significantly mitigated by the current token generation, which uses `hash('sha256', random_bytes(32))`, providing 256 bits of entropy. Tokens also expire after 15 minutes and are deleted after successful use. The same architectural gap applies to other controller-served auth routes, including `/staff/email/:hash` (admin password reset confirmation) and `/client/confirm-email/:hash` (email confirmation). Version 0.8.0 fixes the issue. Some workarounds are available. Configure a reverse proxy (e.g., Nginx, Apache, Cloudflare) to apply per-IP rate limiting to the `/client/reset-password-confirm/*` and `/staff/email/*` paths and/or use a WAF rule to limit request rates to these endpoints.
Title FOSSBilling's password reset confirmation endpoint lacks rate limiting
Weaknesses CWE-204
CWE-307
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Fossbilling Fossbilling
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-04T14:37:01.297Z

Reserved: 2026-05-04T16:59:09.089Z

Link: CVE-2026-43926

cve-icon Vulnrichment

Updated: 2026-06-04T14:36:56.505Z

cve-icon NVD

Status : Deferred

Published: 2026-06-04T14:16:41.193

Modified: 2026-06-04T15:41:35.193

Link: CVE-2026-43926

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-04T15:30:16Z

Weaknesses
  • CWE-204

    Observable Response Discrepancy

  • CWE-307

    Improper Restriction of Excessive Authentication Attempts