Skip to main content

Filament CVE-2025-67507

HIGH
Improper Authentication (CWE-287)
2025-12-10 security-advisories@github.com
8.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Steal victim password and recovery codes
  2. Exploit
    Submit stolen password at login
  3. Execution
    Reuse recovery code to clear app MFA
  4. Impact
    Gain 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

composer filament/filament fix: 4.3.1

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

Vendor (github) PRIMARY 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Medium
popular Laravel admin-panel package, common but not everywhere
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Affected Products (CPE)CVE.org

cpe:2.3:a:filamentphp:filament:*:*:*:*:*:*:*:*
CVE-2026-77567 HIGH POC
8.1 Aug 24

App-based multi-factor authentication in Filament (the Laravel admin panel framework) can be fully bypassed by an attack

CVE-2026-84306 MEDIUM POC
6.5 Sep 01

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

CVE-2026-84307 LOW POC
3.7 Sep 01

Password oracle in Filament's login flow (packages/panels/src/Auth/Pages/Login.php) allows unauthenticated remote attack

CVE-2026-48505 HIGH
7.4 Jun 22

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

CVE-2026-48500 MEDIUM POC
6.5 Jun 22

Unauthenticated arbitrary file upload in Filament (Laravel component framework) versions 3.0.0 through 3.3.51, 4.x throu

CVE-2026-48167 MEDIUM POC
6.4 Jun 22

Stored cross-site scripting in Filament's ImageColumn and ImageEntry components allows low-privileged authenticated atta

CVE-2024-47186 MEDIUM
6.1 Sep 27

Filament is a collection of full-stack components for Laravel development. Rated medium severity (CVSS 6.1), this vulner

CVE-2026-104181 MEDIUM POC
5.4 Oct 01

Missing current-password confirmation in Filament's app-based multi-factor authentication management actions (set-up, di

CVE-2026-48166 MEDIUM POC
5.3 Jun 22

Filament's login page leaks account existence through a measurable timing side-channel, allowing unauthenticated remote

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