CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-84307

CVE-2026-84307: Authentication Oracle and Multi-Factor Authentication Challenge Leak in Filament

Alon Barad
Alon Barad
Software Engineer

Sep 2, 2026·6 min read·3 visits

Executive Summary (TL;DR)

Filament leaked credential validity by triggering MFA flows before verifying user authorization checks.

An authentication oracle vulnerability exists in Filament before 4.12.5 and 5.7.5. The application initiates MFA challenge workflows prior to verifying user authorization policies, allowing unauthenticated attackers to validate guessed credentials.

Vulnerability Overview

Filament is an open-source administration panel and form builder built for the Laravel framework. It provides developers with pre-built components for authentication, user management, and data presentation. This vulnerability affects the core authentication component of the framework, specifically the administrative login interface.

An observable response discrepancy exists within the multi-factor authentication (MFA) workflow. When a user attempts to log in, the application validates the primary credentials first. If the credentials are valid, the application immediately processes the next phase, which involves preparing the multi-factor authentication challenge.

This behavior exposes a functional side channel where an unauthenticated remote attacker can distinguish between correct and incorrect passwords for restricted accounts. The issue stems from the execution order of verification procedures, where authorization boundaries are evaluated too late in the login cycle. This flaw is classified under CWE-204: Observable Response Discrepancy.

Root Cause Analysis

The root cause of this vulnerability lies in the sequence of operations inside the authenticate method within the Login page component. In the vulnerable version of the codebase, primary credential verification is completed first. Once the credentials match, the application checks whether the authenticated user has configured multi-factor authentication.

If multi-factor authentication is configured, the system immediately updates the session state to reflect that the user is undergoing MFA. It then triggers the delivery of the second-factor token, such as sending an email containing a One-Time Password (OTP) or preparing the Time-based One-Time Password (TOTP) prompt. Crucially, this setup occurs before the framework evaluates the user-defined authorization policies.

The framework checks the canAccessPanel() method only after the multi-factor validation completes, or alternatively as a filter closure inside the database attempt logic for non-MFA users. Consequently, a user account that is explicitly blocked from accessing the administrative panel still triggers an MFA response if the password is correct. If the password is incorrect, the login handler returns a standard validation exception immediately, creating a clear behavioral difference.

Code Analysis

The following diagram illustrates the vulnerable login flow where the MFA step executes prior to the panel access check:

To examine the flaw in the source code, look at packages/panels/src/Auth/Pages/Login.php. In the original implementation, the system attempted validation and immediately dispatched the MFA challenge without confirming whether the user had administrative rights:

// Vulnerable Flow
if ($this->isUserUndertakingMultiFactorAuthentication()) {
    // MFA flow is initialized and user is redirected to the challenge screen
    return null;
}
 
if (! $authGuard->attemptWhen($credentials, function (Authenticatable $user): bool {
    return $user->canAccessPanel(Filament::getCurrentOrDefaultPanel());
}, $remember)) {
    $this->fireFailedEvent($authGuard, $user, $credentials);
    $this->throwFailureValidationException();
}

The patch refactors this logic by introducing a helper function isUserAllowedToAccessPanel($user). It evaluates this policy before any MFA transitions occur, and encapsulates the operation within a timebox wrapper to prevent timing attacks:

// Patched Flow in ad5aacbc6d089b3dd7243ec1c1f8ab19dff7c3a1
if (! $this->isUserAllowedToAccessPanel($user)) {
    $this->userUndertakingMultiFactorAuthentication = null;
    $this->fireFailedEvent($authGuard, $user, $credentials);
    $this->throwFailureValidationException();
}
 
$timebox->returnEarly();
return $user;

This modification guarantees that unauthorized accounts fail with a generic exception at the exact same phase, neutralizing the observable behavior discrepancy.

Exploitation Methodology

Exploitation of this vulnerability requires an attacker to target an account that has multi-factor authentication enabled but is restricted from accessing the specific administration panel. The attacker does not need any privileged access to the target application. The vulnerability can be exploited by monitoring the application behavior during credential submission.

An attacker sends a POST request containing the target's email address and a guessed password to the login route. If the password is correct, the application responds with a redirect or a JSON payload prompting for the MFA token. Alternatively, if email MFA is enabled, the system dispatches an OTP email to the victim, which is a visible external indicator.

If the guessed password is incorrect, the application returns a standard HTTP 422 validation error stating that the credentials do not match. By comparing these outcomes, the attacker can systematically verify passwords. Although the attacker is still barred from entering the panel without the MFA token, they successfully confirm password validity, which facilitates targeted credential stuffing campaigns.

Impact Assessment

The primary impact of this vulnerability is the loss of confidentiality regarding credential validity. An attacker can use this behavior to perform efficient offline or online brute-force attacks against target accounts. This reduces the efficacy of defensive measures designed to obscure account existence or valid passwords.

A secondary impact is the potential for resource exhaustion and user harassment. Because the application triggers outbound MFA verification emails before enforcing access restrictions, attackers can spam targeted users with unsolicited OTP codes. This behavior can lead to email sender reputation degradation or exhaustion of third-party mailing API limits.

The Common Vulnerability Scoring System (CVSS) evaluates this flaw at a base score of 3.7. The complexity of exploitation is rated high because the target account must have both MFA active and be restricted from the specific administrative panel. This issue has not been observed in active exploitation in the wild according to security monitoring databases.

Remediation and Mitigation

The most effective remediation is upgrading the Filament framework to the patched releases. The development team has resolved the issue in versions 4.12.5 and 5.7.5. Administrators must update their project dependencies using the PHP composer utility.

# Upgrade the package to the latest secure release
composer update filament/filament

If upgrading is not immediately possible, temporary workarounds can help mitigate the risk. Security teams can configure rate limiting on the /admin/login route to throttle brute-force attempts. This limits the speed at which an attacker can leverage the oracle.

Additionally, implementing monitoring for anomalous volumes of VerifyEmailAuthentication notifications can help detect active exploitation attempts. Security teams should audit user roles regularly to ensure that accounts with MFA enabled are cleanly separated from panels they are not authorized to access.

Official Patches

Filament PHPOfficial patch fixing the authentication order of operations.

Fix Analysis (1)

Technical Appendix

CVSS Score
3.7/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N

Affected Systems

filamentphp/filament

Affected Versions Detail

Product
Affected Versions
Fixed Version
Filament
filamentphp
>= 4.0.0, < 4.12.54.12.5
Filament
filamentphp
>= 5.0.0, < 5.7.55.7.5
AttributeDetail
CWE IDCWE-204
Attack VectorNetwork
CVSS v3.1 Score3.7 (Low)
EPSS ScoreNot Available
ImpactCredential Enumeration / Information Disclosure
Exploit StatusProof of Concept
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1110.001Brute Force: Password Guessing
Credential Access
T1589Gather Victim Identity Information
Reconnaissance
CWE-204
Observable Response Discrepancy

The product receives input, compares it to a list of allowed values, and returns a response that allows an attacker to infer which values are valid.

Vulnerability Timeline

Vulnerability identified and patch pull request submitted
2026-02-18
Patches integrated in versions 4.12.5 and 5.7.5
2026-02-19
GitHub Advisory GHSA-xwpv-pqxp-5v36 published
2026-02-20

References & Sources

  • [1]NVD CVE-2026-84307 Detail
  • [2]GitHub Security Advisory GHSA-xwpv-pqxp-5v36
  • [3]Filament Pull Request #20308
  • [4]Fix Commit ad5aacbc6d089b3dd7243ec1c1f8ab19dff7c3a1

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•31 minutes ago•CVE-2026-77567
8.1

CVE-2026-77567: Multi-Factor Authentication Bypass in Filament App-Based MFA

An authentication bypass vulnerability exists in Filament's app-based (TOTP/authenticator) multi-factor authentication (MFA) system when recovery codes are enabled. This allow attackers possessing primary credentials to bypass the second-factor authentication check entirely by manipulating the Livewire state during the challenge-form validation lifecycle.

Alon Barad
Alon Barad
0 views•7 min read
•about 3 hours ago•CVE-2026-84306
6.5

CVE-2026-84306: Multi-Factor Authentication Bypass via Replay Attack in Filament

A multi-factor authentication bypass vulnerability exists in Filament (Laravel full-stack framework panels) due to improper time-step tracking of Time-Based One-Time Password (TOTP) codes. By submitting valid TOTP codes from an older time window within the drift allowance, an attacker with a user's password can bypass the single-use MFA guarantee and obtain unauthorized account access.

Alon Barad
Alon Barad
3 views•7 min read
•about 4 hours ago•CVE-2026-19418
7.3

CVE-2026-19418: Broken Access Control and Cross-Site Request Forgery in TYPO3 CMS Core

CVE-2026-19418 is a high-severity origin validation vulnerability in TYPO3 CMS that enables Cross-Site Request Forgery (CSRF) and access control bypasses. Due to architectural consolidation of entry points in version 13.0, the core ReferrerEnforcer fails to isolate backend endpoints from the frontend, allowing an attacker with frontend script execution capabilities to perform unauthorized administrative actions.

Alon Barad
Alon Barad
4 views•5 min read
•about 5 hours ago•CVE-2026-84304
8.7

CVE-2026-84304: Uncontrolled Resource Consumption in gRPC-Go HTTP/2 Frame Processing

CVE-2026-84304 is a high-severity uncontrolled resource consumption vulnerability in gRPC-Go, the Go implementation of the gRPC framework. The issue stems from a memory amplification flaw inside the HTTP/2 DATA frame processing subsystem. Remote, unauthenticated attackers can exploit this vulnerability by sending a high volume of heavily fragmented, tiny DATA frames within multiplexed concurrent streams. This causes gRPC-Go servers to allocate excessive internal metadata structures on the Go heap, leading to severe heap memory amplification, intense garbage collection thrashing, and process termination due to Out-of-Memory (OOM) conditions.

Alon Barad
Alon Barad
3 views•7 min read
•about 6 hours ago•CVE-2026-79675
9.8

CVE-2026-79675: JVM Argument Injection in Natural Language Toolkit (NLTK) Stanford Wrappers

CVE-2026-79675 is a critical command injection vulnerability in NLTK versions prior to 3.10.3 that permits remote attackers to execute arbitrary code on the hosting system. This vulnerability stems from an incomplete mitigation of a previous vulnerability, CVE-2026-12841. While NLTK verified global JVM options configured through the library's setup routines, it failed to perform equivalent safety checks on options provided during per-call invocations of Stanford NLP Java wrappers. Attackers controlling these parameters can pass dangerous Java configuration options to the system shell, bypassing security boundaries to spawn interactive processes or load untrusted Java archives.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 7 hours ago•CVE-2026-73228
5.3

CVE-2026-73228: Uncontrolled Resource Consumption (DATA_UPLOAD_MAX_MEMORY_SIZE Bypass) in Django REST Framework

A vulnerability in Django REST Framework (DRF) before version 3.17.2 allows remote attackers to bypass the native Django DATA_UPLOAD_MAX_MEMORY_SIZE limits. When parsing JSON or URL-encoded request bodies, DRF's JSONParser and FormParser read directly from the low-level HTTP network stream, bypassing Django's high-level request size checks and causing Denial of Service (DoS) via resource exhaustion.

Alon Barad
Alon Barad
7 views•6 min read