Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain victim password and recovery codes out-of-band
-
DeliveryIdentify Filament MFA verification endpoint
-
ExploitSubmit same recovery code via N parallel HTTP requests
-
ExecutionRace the check-then-consume window
-
PersistReceive multiple valid session cookies
-
ImpactDistribute sessions across IPs to extend access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires four concrete conditions: (1) the target Filament instance must be on an affected version (4.0.0-4.11.4 or 5.0.0-5.6.4); (2) app-based (TOTP) MFA must be enabled - email-based MFA is explicitly unaffected; (3) the recovery-codes feature must be enabled in the MFA configuration; and (4) the attacker must already possess BOTH the victim user's password AND at least one of their unused recovery codes obtained out-of-band (phishing, credential stuffing, prior breach). The attacker must also be able to issue genuinely concurrent HTTP requests against the verification endpoint within the race window - server-side request serialization, aggressive rate-limiting, or a single-worker deployment could narrow or close the window. The flaw does NOT yield initial access on its own and does not bypass the password or recovery-code secrets themselves. |
| Impact | The CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N vector yields 7.4 (High), but real-world risk is substantially lower than the headline number suggests because this is a post-compromise amplification flaw rather than a standalone access vector - exploitation presupposes the attacker already holds the victim's password AND their recovery codes, conditions not modeled in PR:N. The AC:H rating correctly captures the timing-window requirement, and the absence of any KEV listing, EPSS data, or public POC suggests this is not under active exploitation. The practical impact is extending an already-compromised session footprint (one recovery code yields N sessions instead of 1), which matters for forensic containment and credential-rotation windows but does not enable initial access. Conflict to note: the PR:N rating is technically defensible (no Filament-issued credentials are needed for the HTTP submission itself) but is misleading without context, since the attacker must possess out-of-band secrets to even reach the vulnerable code path. |
| Exploit ScenarioDerived | An attacker who has previously phished or otherwise stolen a Filament admin user's password and recovery code set scripts a small concurrent HTTP client (e.g., 10 parallel curl/async requests) to submit the same recovery code to the MFA verification endpoint simultaneously. The race window allows several requests to pass validation before the code is marked consumed, returning multiple valid session cookies the attacker can distribute across IPs to evade single-session anomaly detection. No public POC is currently identified, but the bug class is well-understood and trivially scriptable by anyone with the prerequisite credentials. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 22, 2026
Recovery code reuse in Filament (Laravel admin panel framework) versions 4.0.0 through 4.11.4 and 5.0.0 through 5.6.4 allows attackers who already possess a victim's password and recovery codes to obtain multiple authenticated sessions per single recovery code by submitting parallel authentication requests. The flaw stems from a TOCTOU race condition (CWE-362) in app-based MFA recovery code validation, undermining the single-use guarantee. No public exploit identified at time of analysis and the vulnerability is fixed in 4.11.5 and 5.6.5.
RemediationAI
Vendor-released patch: upgrade to Filament 4.11.5 (for the 4.x branch) or 5.6.5 (for the 5.x branch) as documented in GHSA-mc5j-f6wx-h9qh at https://github.com/filamentphp/filament/security/advisories/GHSA-mc5j-f6wx-h9qh. If immediate upgrade is not possible, compensating controls include disabling the recovery-codes feature in the Filament MFA configuration (forces users into the standard TOTP flow but locks out anyone who has lost their authenticator), switching the MFA driver to email-based verification which is not affected (trade-off: weaker phishing resistance and dependence on mailbox security), or putting the authentication endpoint behind a rate-limiter or WAF rule that rejects concurrent recovery-code submissions from the same source within a short window (may produce false positives for legitimate retries). After patching, rotate any recovery codes that may have been used during the exposure window and review authentication audit logs for multiple successful logins tied to a single recovery code identifier.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Filament is a popular open-source TALL-stack (Tailwind, Alpine, Laravel, Livewire) component library used to build admin panels and dashboards on top of Laravel applications, identified by CPE cpe:2.3:a:filamentphp:filament. The vulnerability is a CWE-362 concurrent execution race condition in the MFA recovery-code consumption logic: the code checks whether a recovery code is valid and then marks it as used in non-atomic operations, creating a check-then-act window. By submitting multiple authentication requests in parallel within that window, an attacker can pass the validation step multiple times before the 'consumed' state is written, allowing the same recovery code to authenticate more than one session. The defect is specific to app-based (TOTP) MFA flows and does not affect email-based MFA, which uses a different verification path.
Know when Filament gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Attacker must already hold password and recovery codes (PR:H); AC:H for race window; impact is session-count amplification only, not new C/I compromise, so C:L/I:L/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Filament is a collection of full-stack components for accelerated Laravel development. From 4.0.0 until 4.11.5 and 5.6.5, a flaw in the handling of recovery codes for app-based multi-factor authentication allows the same recovery code to be reused via concurrent submission. This issue does not affect email-based MFA. It also only applies when recovery codes are enabled. If an attacker gains access to both the user's password and their recovery codes, they get two authenticated sessions per recovery code burned instead of one, or more if they batch the parallel submissions wider, materially extending the attacker's window of access compared to what the single-use guarantee implies. This vulnerability is fixed in 4.11.5 and 5.6.5.
Executive ViewAI
Organizations using Filament versions 4.0.0-4.11.4 or 5.0.0-5.6.4 face a critical gap in MFA security: attackers who obtain both a user's password and recovery codes can exploit a race condition to establish multiple authenticated sessions from a single recovery code. This defeats the intended single-use protection of recovery mechanisms. Patches are available immediately in versions 4.11.5 and 5.6.5, with no public exploit identified at time of analysis.
Apply vendor patch. Upgrade to Filament 4.11.5 (for v4 branch) or 5.6.5 (for v5 branch).
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
App-based multi-factor authentication in Filament (the Laravel admin panel framework) can be fully bypassed by an attack
TOTP app-based MFA in Filament 4.0.0-4.12.5 and 5.0.0-5.7.5 can be bypassed by replaying any previously-issued authentic
Recovery codes used as a fallback for app-based (TOTP) multi-factor authentication in Filament 4.0.0 through 4.3.0 are n
Password oracle in Filament's login flow (packages/panels/src/Auth/Pages/Login.php) allows unauthenticated remote attack
Unauthenticated arbitrary file upload in Filament (Laravel component framework) versions 3.0.0 through 3.3.51, 4.x throu
Stored cross-site scripting in Filament's ImageColumn and ImageEntry components allows low-privileged authenticated atta
Filament is a collection of full-stack components for Laravel development. Rated medium severity (CVSS 6.1), this vulner
Missing current-password confirmation in Filament's app-based multi-factor authentication management actions (set-up, di
Filament's login page leaks account existence through a measurable timing side-channel, allowing unauthenticated remote
EUVD-2026-38392
GHSA-mc5j-f6wx-h9qh
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB