Skip to main content

FOSSBilling CVE-2026-53646

HIGH
Weak Password Recovery Mechanism for Forgotten Password (CWE-640)
2026-07-06 security-advisories@github.com
7.7
CVSS 4.0 · Vendor: github
Share

Severity by source

Vendor (github) PRIMARY
7.7 HIGH
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Network guest endpoint (PR:N) but AC:H because the attacker must already hold the unexpired original link, and UI:R since the victim must trigger a reset; account takeover yields full C/I/A:H.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
P
Scope
X

Lifecycle Timeline

2
Analysis Generated
Jul 06, 2026 - 23:38 vuln.today
CVE Published
Jul 06, 2026 - 23:16 cve.org
HIGH 7.7

DescriptionCVE.org

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.

AnalysisAI

Account takeover in FOSSBilling 0.5.6 through 0.7.2 arises because the reset_password guest API endpoint reuses an existing, unexpired ClientPasswordReset token rather than rotating it on each request. An attacker who has captured a victim's earlier reset link retains a valid path to hijack the account even after the victim requests a fresh reset, since the original token is never invalidated and its 15-minute window is anchored to the first request. No public exploit is identified at time of analysis, and the CVSS 4.0 score is 7.7 (High); version 0.8.0 fixes the flaw.

Technical ContextAI

FOSSBilling is a PHP-based open-source billing and client management platform. The weakness is a classic CWE-640 (Weak Password Recovery Mechanism): the password-reset workflow persists a ClientPasswordReset record keyed to a client, and when a record already exists from a prior unexpired request, the reset_password handler reuses that same token and created_at timestamp instead of generating and persisting a new one. Because token validity (15 minutes) is computed from the original created_at rather than the most recent email send, and because a new request neither deletes nor rotates the prior token, any previously issued link stays live for its full original lifetime. The client_password_reset database table therefore holds a single reusable token per client rather than a per-request, single-use secret.

Affected ProductsAI

FOSSBilling versions 0.5.6 through 0.7.2 are affected, and the issue is fixed in version 0.8.0. No CPE strings were supplied in the input. The authoritative source is the FOSSBilling GitHub Security Advisory GHSA-vp66-w6rc-x32p (https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-vp66-w6rc-x32p); no separate NVD CPE configuration was provided.

RemediationAI

Vendor-released patch: 0.8.0 - upgrade FOSSBilling to 0.8.0 or later, which corrects token rotation/invalidation, per advisory GHSA-vp66-w6rc-x32p (https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-vp66-w6rc-x32p). If immediate upgrade is not possible, the vendor documents two workarounds: configure a reverse proxy (Nginx, Apache, or Cloudflare) to enforce per-IP rate limiting on the /client/reset-password endpoint to shrink the window of opportunity (trade-off: rate limiting curbs automated abuse but does not invalidate an already-captured token, so it is mitigation not remediation), and manually clear expired rows from the client_password_reset database table after a client reports a suspected compromise (trade-off: reactive and manual, effective only once abuse is suspected). Combine both interim controls until 0.8.0 is deployed.

More in Nginx

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2013-2028 HIGH POC
7.5 Jul 20

The ngx_http_parse_chunked function in http/ngx_http_parse.c in nginx 1.3.9 through 1.4.0 allows remote attackers to cau

CVE-2025-1974 CRITICAL POC
9.8 Mar 25

A critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access

CVE-2013-4547 HIGH POC
7.5 Nov 23

nginx 0.8.41 through 1.4.3 and 1.5.x before 1.5.7 allows remote attackers to bypass intended restrictions via an unescap

CVE-2023-50919 CRITICAL POC
9.8 Jan 12

An issue was discovered on GL.iNet devices before version 4.5.0. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2017-7529 HIGH
7.5 Jul 13

Nginx versions since 0.5.6 up to and including 1.13.2 are vulnerable to integer overflow vulnerability in nginx range fi

CVE-2016-0742 HIGH
7.5 Feb 15

The resolver in nginx before 1.8.1 and 1.9.x before 1.9.10 allows remote attackers to cause a denial of service (invalid

CVE-2025-1098 HIGH POC
8.8 Mar 25

Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress

CVE-2025-24514 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres

CVE-2025-1097 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c

CVE-2022-31137 CRITICAL POC
9.8 Jul 08

Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. Rated critical severity (CVSS 9.8

CVE-2014-3556 MEDIUM
6.8 Dec 29

The STARTTLS implementation in mail/ngx_mail_smtp_handler.c in the SMTP proxy in nginx 1.5.x and 1.6.x before 1.6.1 and

Share

CVE-2026-53646 vulnerability details – vuln.today

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