Filament, Password Validity Disclosure, CVE-Pending (Low) -DC-Sep2026-2083

Listen to this Post

The vulnerability resides in the authentication flow of Filament when Multi-Factor Authentication (MFA) is enabled.
Normally, the login process validates credentials, then checks if the user has access to the panel via canAccessPanel().
However, in affected versions (4.x before 4.12.5 and 5.x before 5.7.5), the MFA challenge step is triggered immediately after password verification.
This happens before the canAccessPanel() authorization check is performed.
As a result, if an account exists and has MFA enabled but is explicitly denied panel access (canAccessPanel() returns false), the system behaves differently based on the password correctness.
Submitting the correct password for such an account will not immediately return a login failure.
Instead, the system proceeds to present the MFA challenge page or sends a one-time code (if email-based MFA is used).
On the other hand, submitting an incorrect password triggers a generic “invalid credentials” error message.

This differential response creates a side-channel information leak.

An unauthenticated attacker can leverage this to verify whether a given password is valid for a specific user account.
The attack does not bypass authentication because the canAccessPanel() check is executed after the MFA challenge.
Therefore, no session is created, and the attacker cannot access the panel without the MFA code.
Nevertheless, the ability to confirm password validity is a significant security weakness.
It turns the login endpoint into a password oracle for accounts that meet the specific conditions.
The conditions are: (1) the account exists, (2) MFA is enabled for that account, and (3) canAccessPanel() returns false.
This issue does not affect accounts without MFA because the failure message is uniform in that case.
It also does not affect accounts with MFA that are allowed panel access, as the flow would naturally proceed to MFA.
The root cause is the improper ordering of authorization checks within the authentication pipeline.

Filament’s Login controller orchestrates the authentication steps sequentially.

The patch addresses this by moving the canAccessPanel() check earlier, before the MFA challenge is initiated.
By doing so, denied users receive a generic failure regardless of password correctness.
The vulnerability is classified as low severity because authentication is not fully bypassed.
However, it facilitates credential stuffing and password brute-force attacks.
Attackers can narrow down valid passwords for targeted accounts.
This information can be combined with other vulnerabilities or used for account takeover if the password is reused.
The advisory was published on August 17, 2026, and patched versions were released shortly after.
Users are strongly advised to upgrade to version 4.12.5 or 5.7.5 immediately.
For custom implementations, ensure that canAccessPanel() is evaluated before any MFA logic.
The vulnerability has been reviewed by GitHub and added to the advisory database.
This flaw highlights the importance of fail-safe authentication design where all checks are performed before branching.

DailyCVE Form:

Platform: FilamentPHP
Version: 4.x<4.12.5 & 5.x<5.7.5
Vulnerability: Password validity disclosure
Severity: Low
date: 2026-08-17

Prediction: Already Patched

What Undercode Say:

Analytics show that the login endpoint returns distinct HTTP bodies when MFA is enabled. Use curl to compare responses:

Correct password (denied account with MFA) – returns MFA challenge
curl -X POST https://target.com/admin/login \
-d '[email protected]&password=ValidP@ss' -v
Incorrect password – returns "Invalid credentials"
curl -X POST https://target.com/admin/login \
-d '[email protected]&password=WrongPass' -v

Flawed logic order (simplified PHP):

// Vulnerable sequence
if (Auth::attempt($credentials)) {
if ($user->hasMFA()) {
return redirect()->route('mfa.challenge'); // Before canAccessPanel()
}
if (!$user->canAccessPanel()) {
return back()->withErrors(['email' => 'Invalid credentials']);
}
}

Patched sequence moves the panel check right after password validation, before MFA.

Exploit: (Educational Purposes!)

  1. Enumerate a list of target email addresses for accounts that likely have MFA enabled and restricted panel access.
  2. For each account, submit a login request with a candidate password.
  3. Observe the response: an MFA challenge page or a sent code email indicates the password is correct; a generic “invalid credentials” error indicates it is wrong.
  4. Use this oracle to brute-force passwords offline by iterating a dictionary – each attempt yields a clear pass/fail signal.
  5. Once a valid password is confirmed, stop; you cannot fully log in without the MFA code, but you have now verified a working credential pair for that user.

Protection: from this CVE

Upgrade Filament to version 4.12.5 or 5.7.5 where the authorization check is performed before the MFA step. If upgrading is not immediately possible, override the login controller to explicitly evaluate `canAccessPanel()` right after user authentication and before initiating any MFA flow, returning a uniform “invalid credentials” error for all failures. Additionally, monitor login endpoints for unusual request patterns that might indicate password probing.

Impact:

An unauthenticated attacker can determine whether a specific password is valid for any account that has MFA enabled but is denied panel access. This undermines password confidentiality and accelerates credential brute-force attacks. Although full account takeover is blocked by the MFA code requirement, the leaked password may be reused on other services, leading to broader compromise. The risk is heightened for high-privilege accounts that share passwords across platforms.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top