Description
PHPNuxBill through 2025.3.20 contains an account takeover vulnerability in the customer password reset flow in system/controllers/forgot.php that allows unauthenticated attackers to brute-force the 6-digit otp_code. Attackers knowing a customer username can guess the code without attempt limits or lockout, then read the newly set password from the HTTP response to hijack the account.
Published: 2026-10-09
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Account Takeover via brute‑forceable password reset
Action: Immediate Patch
AI Analysis

Impact

The vulnerability in PHPNuxBill allows an unauthenticated attacker to guess a six‑digit OTP code used for password resets. No attempt limits or lockout mechanisms exist in the forgot.php controller, so the attacker can brute‑force the code and read the newly set password from the HTTP response, effectively hijacking the user’s account. This flaw is a classic case of password guessing (CWE-307).

Affected Systems

PHPNuxBill up to and including version 2025.3.20 is affected. The vulnerability resides in the password reset functionality of system/controllers/forgot.php and results in full account takeover for any user whose username is known to the attacker.

Risk and Exploitability

The vulnerability carries a CVSS score of 9.3, indicating critical severity. Although an EPSS score is not available, the lack of rate limiting in the OTP process makes exploitation straightforward for attackers with network access to the web interface. The issue is not listed in CISA’s KEV catalog, but the high severity and ease of exploitation make it a significant risk, especially to systems that lack additional monitoring or rate‑limiting controls.

Generated by OpenCVE AI on October 9, 2026 at 15:23 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade PHPNuxBill to the latest release (2025.3.21 or newer) where the password reset flow has been corrected.
  • If an immediate upgrade is not feasible, apply the security patch from the commit c3c2a92d468af91136d747b75142ed72f10320cc, which restricts brute‑force attempts on the OTP code.
  • During the transition, enforce a strict rate limit or account‑lockout policy on the password‑reset endpoint to mitigate brute‑force attacks.

Generated by OpenCVE AI on October 9, 2026 at 15:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 11 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
First Time appeared Hotspotbilling
Hotspotbilling phpnuxbill
Vendors & Products Hotspotbilling
Hotspotbilling phpnuxbill

Fri, 09 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 09 Oct 2026 14:45:00 +0000

Type Values Removed Values Added
Description PHPNuxBill through 2025.3.20 contains an account takeover vulnerability in the customer password reset flow in system/controllers/forgot.php that allows unauthenticated attackers to brute-force the 6-digit otp_code. Attackers knowing a customer username can guess the code without attempt limits or lockout, then read the newly set password from the HTTP response to hijack the account.
Title PHPNuxBill through 2025.3.20 Account Takeover via Brute-Forceable Password Reset Code
Weaknesses CWE-307
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}

cvssV4_0

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


Subscriptions

Hotspotbilling Phpnuxbill
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-09T17:26:03.792Z

Reserved: 2026-10-09T13:44:40.883Z

Link: CVE-2026-108109

cve-icon Vulnrichment

Updated: 2026-10-09T17:25:52.541Z

cve-icon NVD

Status : Deferred

Published: 2026-10-09T15:17:12.047

Modified: 2026-10-09T18:17:06.727

Link: CVE-2026-108109

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-11T12:26:38Z

Weaknesses
  • CWE-307

    Improper Restriction of Excessive Authentication Attempts