---
id: CVE-2026-108109
title: >-
  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
summary: >-
  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 c…
severity: critical
cvss: 9.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'
cwe:
  - CWE-307
published: '2026-10-09'
updated: '2026-10-09'
sourceUpdated: '2026-10-09T18:17:06.727'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-108109'
references:
  - url: 'https://github.com/hotspotbilling/phpnuxbill'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/hotspotbilling/phpnuxbill/blob/2025.3.13/system/controllers/forgot.php#L41
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/hotspotbilling/phpnuxbill/commit/c3c2a92d468af91136d747b75142ed72f10320cc
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/hotspotbilling/phpnuxbill/security/advisories/GHSA-337r-rrrc-r559
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/phpnuxbill-through-2025.3.20-account-takeover-via-brute-forceable-password-reset-code
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/hotspotbilling/phpnuxbill/security/advisories/GHSA-337r-rrrc-r559
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
ingestedAt: '2026-10-09T16:02:33.385Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
