Filament
CVE-2025-67507
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSteal victim password and recovery codes
-
ExploitSubmit stolen password at login
-
ExecutionReuse recovery code to clear app MFA
-
ImpactGain repeatable account access to Filament panel
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Applies only to Filament panels (versions 4.0.0 through 4.3.0) that use app-based (TOTP) multi-factor authentication with the recovery-codes feature enabled; email-based MFA is explicitly unaffected and deployments without recovery codes are not exploitable. The decisive prerequisite is that the attacker must already hold the victim's valid password and at least one of their recovery codes - the flaw does not grant initial credential access, it makes a compromised recovery code reusable indefinitely instead of one-time. Primary limiting factors: dependence on prior compromise of both credentials and recovery codes (reflected in CVSS AC:H), the non-default requirement that recovery codes be enabled, and the specific affected version window patched in 4.3.1. |
| Impact | Signals here point to a real but conditional risk rather than a widespread, easily exploitable flaw. The NVD CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N, C:H/I:H/A:H, score 8.1) rates this High, but the AC:H component and the advisory text reveal the true gating factor: an attacker must already possess BOTH the victim's password AND their valid recovery codes. This makes the PR:N labeling technically defensible (the attacker holds no legitimate account of their own) yet somewhat misleading in practice - exploitation is predicated on a prior credential/recovery-code compromise, so this is a defense-in-depth failure that nullifies the second factor rather than a standalone remote account-takeover primitive. EPSS is low at 0.34% (26th percentile), consistent with no public weaponized exploit and the required preconditions. The CVE is NOT in CISA KEV, and no POC/exploit code is present - only the vendor patch diff and a regression test. No SSVC decision record was provided in the input. Bottom line: the CVSS-High rating overstates day-to-day urgency; realistic risk is moderate and scoped to environments where an attacker has already stolen recovery codes, in which case the flaw turns those codes into a permanent, reusable MFA bypass. The low EPSS and absence of KEV/POC align with that conditional profile rather than contradicting it. |
| Exploit ScenarioDerived | An attacker who has already phished or otherwise stolen a Filament panel user's password and recovery codes logs in and, when prompted for app-based MFA, submits one of the stolen recovery codes. Because the code is never invalidated after use, the attacker can repeatedly authenticate as the victim across future sessions without ever needing the TOTP app. No public exploit code exists; exploitation is manual and requires prior possession of valid credentials and recovery codes. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Recovery codes used as a fallback for app-based (TOTP) multi-factor authentication in Filament 4.0.0 through 4.3.0 are never consumed when redeemed, so a single code keeps working indefinitely instead of once. The practical impact is that an attacker who already holds a victim's valid password plus one leaked or observed recovery code can keep satisfying the MFA challenge and log in repeatedly, effectively converting a one-time backup credential into a permanent second-factor bypass; email-based MFA and installations with recovery codes disabled are not affected. This is a conditional rather than a readily exploitable flaw: there is no public exploit identified at time of analysis, EPSS is low (~0.34%, 26th percentile), no CISA KEV listing exists, and exploitation requires the prior compromise of both credentials and a recovery code, which is why the CVSS vector carries AC:H despite a PR:N rating.
RemediationAI
Upgrade filament/filament to version 4.3.1 or later - the vendor-released patch, per advisory GHSA-pvcv-q3q7-266g and commit 87ff60ad9b6e16d4e14ee36a220b8917dd7b0815 - and re-run composer update (or composer require filament/filament:^4.3.1) so the lock file actually pins the fixed release. Where an immediate upgrade is not possible, the most direct compensating control is to disable recovery codes for app-based MFA in the panel configuration; the trade-off is that users who lose or replace their authenticator device will have no self-service fallback and must go through an administrative reset, which increases helpdesk load and can create account lockout pressure. A second option is to treat recovery codes as compromised by default: force rotation by regenerating recovery codes for all users on app-based MFA, and rotate again immediately whenever a code is suspected to have been used, understanding that this is a procedural workaround with no technical enforcement and will not stop an attacker who re-obtains a freshly issued code. Because exploitation requires a valid password plus a valid recovery code, tightening credential hygiene - enforcing strong unique passwords, rate limiting and alerting on repeated MFA challenge successes, and monitoring for repeated logins from the same account using different sessions - measurably reduces residual risk during the upgrade window. Filament's email-based MFA does not require any of these mitigations.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in composer
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Filament is a full-stack component collection for Laravel applications, distributed as the Composer package filament/filament, and the affected code lives in the panels authentication subsystem (packages/panels/src/Auth/MultiFactor/App/AppAuthentication.php). The vulnerable method verifyRecoveryCode() hashes the submitted code and compares it against stored hashed recovery codes, but on a match it returned true immediately without ever removing the matched entry from the user's stored set, so the same code remained valid for all future challenges. The security advisory and the accompanying commit 87ff60ad9b6e16d4e14ee36a220b8917dd7b0815 show the fix restructuring the loop to collect all non-matching hashes into $remainingCodes, flag validity, and then persist the reduced set via saveAppAuthenticationRecoveryCodes() only when a match occurred - the classic one-time-token consumption pattern. The root cause class is CWE-287 (Improper Authentication): the authentication decision is correct at issuance but the credential lifecycle is not enforced, meaning the second factor degrades from proof of possession into a static secret. Note the parallel test added in AppAuthenticationChallengeTest.php, which explicitly asserts a second use of the same recovery code produces form errors and no redirect, confirming the intended invariant is single-use. The defect is scoped strictly to the app/TOTP provider when recovery codes are enabled; the email-based MFA provider does not use this code 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:H
AC:H because exploitation depends on prior theft of both password and recovery codes; PR:N as the attacker uses victim credentials rather than their own account; full panel takeover yields C/I/A:H.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
Filament is a collection of full-stack components for accelerated Laravel development. Versions 4.0.0 through 4.3.0 contain a flaw in the handling of recovery codes for app-based multi-factor authentication, allowing the same recovery code to be reused indefinitely. This issue does not affect email-based MFA. It also only applies when recovery codes are enabled. This issue is fixed in version 4.3.1.
Executive ViewAI
Filament versions 4.0.0 through 4.3.0 - the framework behind many internal admin panels and back-office applications - fail to invalidate app-based (TOTP) recovery codes after use, meaning a single backup code continues to satisfy multi-factor authentication indefinitely rather than once. Organizations running an affected release with recovery codes enabled are exposed whenever an attacker already holds a user's password and has obtained one recovery code, giving that actor a durable path into privileged administrative interfaces. Leadership should care because this converts a one-time safety mechanism into a standing bypass of the last control protecting high-value internal systems, even though it is not actively exploited and requires prior credential compromise.
Apply vendor patch.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)CVE.org
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
Password oracle in Filament's login flow (packages/panels/src/Auth/Pages/Login.php) allows unauthenticated remote attack
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 al
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
NVD
CVE.org
EPSS
GitHub
Exploit-DB