Description
FOSSBilling is a free, open-source billing and client management system. In versions 0.5.6 through 0.7.2, when a `ClientPasswordReset` record already exists for a client (from a previous unexpired reset request), subsequent calls to the `reset_password` guest API endpoint reuse the existing token instead of generating a new one. The 15-minute validity window is anchored to the first request's `created_at` timestamp, not the time of the most recent email. An attacker who obtained the original reset link remains able to use it even after the victim requests a new reset, because the original token is never invalidated or rotated. Version 0.8.0 patches 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` endpoint to minimize the window of opportunity, and/or manually clear expired `client_password_reset` records from the database after a client reports a suspected compromise.
Published: 2026-07-06
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

FOSSBilling versions 0.5.6 through 0.7.2 contain a flaw in the client password‑reset flow (CWE‑640). When a reset request is made and a token already exists for the client, the application reuses that token instead of generating a new one. The 15‑minute validity window is anchored to the timestamp of the original request’s `created_at` field, not the time of the most recent email. An attacker who obtains the initial reset link can therefore continue to use that token to reset the account password even after the victim has requested a new password reset, because the original token is never invalidated or rotated. The issue is fixed in version 0.8.0. Until then, administrators can mitigate by configuring a reverse proxy such as Nginx, Apache, or Cloudflare to apply per‑IP rate limiting on the /client/reset-password endpoint, or by manually deleting expired client_password_reset records from the database after a suspected compromise.

Affected Systems

The open‑source billing platform FOSSBilling is affected. Vulnerable releases are 0.5.6 through 0.7.2; version 0.8.0 includes the fix that invalidates obsolete tokens.

Risk and Exploitability

The CVSS score of 7.7 denotes high severity, while the EPSS score of less than 1% suggests a low probability of exploitation at present. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires only access to the publicly exposed /client/reset-password endpoint; an attacker can repeatedly submit reset requests and, if he obtains the initial reset link, he can use it until the 15‑minute window lapses. No privileged system access is needed for this attack.

Generated by OpenCVE AI on July 26, 2026 at 19:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade FOSSBilling to version 0.8.0 or later to invalidate old reset tokens
  • Configure a reverse proxy such as Nginx, Apache, or Cloudflare to apply per‑IP rate limiting on the /client/reset-password endpoint to shorten the opportunity window
  • Manually delete expired client_password_reset records from the database after a suspected compromise

Generated by OpenCVE AI on July 26, 2026 at 19:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 07 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 07 Jul 2026 00:45:00 +0000

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

Mon, 06 Jul 2026 23:15:00 +0000

Type Values Removed Values Added
Description FOSSBilling is a free, open-source billing and client management system. In versions 0.5.6 through 0.7.2, when a `ClientPasswordReset` record already exists for a client (from a previous unexpired reset request), subsequent calls to the `reset_password` guest API endpoint reuse the existing token instead of generating a new one. The 15-minute validity window is anchored to the first request's `created_at` timestamp, not the time of the most recent email. An attacker who obtained the original reset link remains able to use it even after the victim requests a new reset, because the original token is never invalidated or rotated. Version 0.8.0 patches 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` endpoint to minimize the window of opportunity, and/or manually clear expired `client_password_reset` records from the database after a client reports a suspected compromise.
Title FOSSBilling: Client password reset token reuse allows persistent account takeover
Weaknesses CWE-640
References
Metrics cvssV4_0

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


Subscriptions

Fossbilling Fossbilling
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-07T13:56:05.622Z

Reserved: 2026-06-09T20:16:59.648Z

Link: CVE-2026-53646

cve-icon Vulnrichment

Updated: 2026-07-07T13:56:01.113Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T20:00:04Z

Weaknesses
  • CWE-640

    Weak Password Recovery Mechanism for Forgotten Password