filament/filament security advisory
CVE-2025-67507: Filament multi-factor authentication (app) recovery codes can be used multiple times
CVE-2025-67507 is a high-severity authentication bypass vulnerability in the PHP package filament/filament (CVSS 8.1), published 10 December 2025. It is fixed in 4.3.1; earlier versions are affected. It can be exploited without an account.
high 8.1 published 2025-12-10 · updated 2026-10-14
- Affected versions
- >= 4.0.0, < 4.3.1
- Fixed in
- 4.3.1
- Newest release
- 5.11.1
- Severity
- High · CVSS 8.1
- Type
- Authentication bypass
CWE-287, CWE-288 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your filament/filament version affected?
Who can exploit CVE-2025-67507
- Access: No account. Anyone who can send a request to an app that uses the affected code.
- Conditions: It only works under specific conditions the attacker does not fully control (CVSS rates the attack as high complexity).
CVSS vector (scored by GitHub): CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
How to fix CVE-2025-67507 in filament/filament
- Find the installed version:
composer show filament/filament. If you never required it yourself,composer why filament/filamentshows which package pulls it in. - Update it:
composer update filament/filament --with-all-dependencies. You need 4.3.1 or newer. - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"filament/filament": "^4.3.1"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2025-67507. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Remove accounts you do not need and review what each role can do.
- Put the admin area behind a VPN, IP allow-list or extra login until you upgrade.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2025-67507 advisory
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.
References
- GitHub advisory GHSA-pvcv-q3q7-266g github.com
- Fix commit 87ff60a github.com
Other filament/filament advisories
- medium CVE-2026-104181: Filament: Multi-factor authentication (app) management actions do not require password reauthentication 2026-10-05
- medium CVE-2026-84306: Filament: Multi-factor authentication (app) codes can still be used after a newer code has been used 2026-09-01
- low CVE-2026-84307: Filament: Password validity disclosure for accounts denied panel access on login page 2026-09-01
- high CVE-2026-77567: Filament: Multi-factor authentication (app) can be bypassed when recovery codes are enabled 2026-09-01
- high CVE-2026-48505: Filament: Multi-factor authentication (app) recovery codes can still be used multiple times via concurrent submission 2026-06-25
- medium CVE-2026-48500: Filament: Unauthenticated temporary file upload on auth pages 2026-06-23
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.