Skip to main content

FOSSBilling CVE-2026-43926

| EUVDEUVD-2026-34255 MEDIUM
Observable Response Discrepancy (CWE-204)
2026-06-04 GitHub_M
6.3
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.3 MEDIUM
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/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

Primary rating from Vendor (GitHub_M) · only source for this CVE.

CVSS VectorVendor: GitHub_M

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/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
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

6
Source Code Evidence Fetched
Jun 04, 2026 - 16:22 vuln.today
Analysis Generated
Jun 04, 2026 - 16:22 vuln.today
Patch available
Jun 04, 2026 - 15:01 EUVD
CVSS changed
Jun 04, 2026 - 14:22 NVD
6.3 (MEDIUM)
CVE Published
Jun 04, 2026 - 12:46 nvd
MEDIUM 6.3
CVE Published
Jun 04, 2026 - 12:46 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

Password reset token enumeration in FOSSBilling prior to 0.8.0 exposes three authentication endpoints - including the elevated-privilege admin reset at /staff/email/:hash - to unlimited brute-force guessing due to a rate limiter architecturally scoped exclusively to /api/* routes. The confirmation endpoint acts as a CWE-204 oracle, returning distinguishable HTTP responses (200 for valid tokens, 302 redirect for invalid), allowing an unauthenticated remote attacker to probe token validity without throttling, lockout, or attempt counting. Practical exploitation risk is substantially reduced by 256-bit token entropy (hash('sha256', random_bytes(32))) combined with a 15-minute expiry window, which is accurately reflected in the CVSS 4.0 AC:H/AT:P scoring; no public exploit or CISA KEV listing has been identified at time of analysis.

Technical ContextAI

The root cause is a CWE-204 (Observable Response Discrepancy) implementation gap: FOSSBilling's rate-limiting middleware is bound exclusively to /api/* route prefixes, leaving controller-served routes entirely unthrottled. Three endpoints are affected: /client/reset-password-confirm/:hash (client password reset confirmation), /staff/email/:hash (admin/staff password reset confirmation), and /client/confirm-email/:hash (email address confirmation). Each endpoint returns a semantically distinct HTTP status code - HTTP 200 for a valid, unexpired token versus HTTP 302 redirect for an invalid one - creating a side-channel oracle that enables token validity probing with no server-side cost to the attacker. Token generation in affected versions uses PHP's hash('sha256', random_bytes(32)), which produces 256 bits of effective entropy from a cryptographically secure pseudorandom source, making brute force computationally infeasible in practice. CPE cpe:2.3:a:fossbilling:fossbilling:*:*:*:*:*:*:*:* confirms all FOSSBilling releases preceding 0.8.0 carry this architectural flaw. The fix in version 0.8.0 (PR #3461) extends rate limit coverage to include controller-served authentication routes.

RemediationAI

The primary fix is upgrading to FOSSBilling 0.8.0 (released 2026-05-28), which extends the rate limit system to cover controller-served authentication routes (PR #3461) alongside broader security hardening; the release is available at https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.0. Important: version 0.8.0 introduces breaking changes including a mandatory PHP 8.3 minimum requirement - verify your server environment and review the full release notes before upgrading, and back up your installation first. For installations that cannot immediately upgrade, configure a reverse proxy (Nginx or Apache) or CDN/WAF (e.g., Cloudflare) to enforce per-IP rate limiting on the paths /client/reset-password-confirm/*, /staff/email/*, and /client/confirm-email/*; a limit of 10 requests per IP per 15-minute window would effectively eliminate the oracle threat without impacting legitimate users who rarely interact with these endpoints. Note that aggressive rate limiting on /client/confirm-email/* may delay legitimate email confirmation for users behind shared egress IPs (e.g., corporate NAT or VPN), so apply a more permissive threshold to that path if needed. Prioritize the /staff/email/* workaround if the full upgrade cannot be performed immediately, as that path protects admin-level credentials.

CVE-2023-3490 CRITICAL POC
9.8 Jun 30

SQL Injection in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated critical severity (CVSS 9.8), this vuln

CVE-2026-28496 CRITICAL POC
9.4 Jun 23

Server-side template injection in FOSSBilling versions prior to 0.8.0 allows authenticated administrators to execute arb

CVE-2023-3491 HIGH POC
8.8 Jun 30

Unrestricted Upload of File with Dangerous Type in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated high

CVE-2023-3230 HIGH POC
7.5 Jun 14

Missing Authorization in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated high severity (CVSS 7.5), this

CVE-2023-3393 HIGH POC
7.2 Jun 23

Code Injection in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated high severity (CVSS 7.2), this vulnera

CVE-2023-3229 MEDIUM POC
6.5 Jun 14

Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 6.5), thi

CVE-2023-3521 MEDIUM POC
6.1 Jul 06

Cross-site Scripting (XSS) - Reflected in GitHub repository fossbilling/fossbilling prior to 0.5.4. Rated medium severit

CVE-2026-27604 CRITICAL
10.0 Jun 23

Authorization bypass in FOSSBilling versions 0.5.4 through 0.7.x allows unauthenticated remote attackers to invoke privi

CVE-2023-4005 CRITICAL
9.8 Jul 31

Insufficient Session Expiration in GitHub repository fossbilling/fossbilling prior to 0.5.5. Rated critical severity (CV

CVE-2023-3228 MEDIUM POC
5.7 Jun 14

Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 5.7), thi

CVE-2023-3227 MEDIUM POC
5.7 Jun 14

Insufficient Granularity of Access Control in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium sev

CVE-2023-3394 MEDIUM POC
5.4 Jun 23

Session Fixation in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated medium severity (CVSS 5.4), this vul

Share

CVE-2026-43926 vulnerability details – vuln.today

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