Executive brief
Filament, a popular development framework for PHP, contains a flaw in its multi-factor authentication (MFA) system. When using app-based MFA, recovery codes—which are intended to be single-use—can be reused indefinitely. If an attacker obtains a user's password and a recovery code, they can bypass the second layer of security repeatedly to access sensitive accounts and data.
Technical details
An authentication bypass vulnerability exists in Filament's app-based multi-factor authentication (MFA) implementation. The root cause is improper handling of recovery codes, which fail to be invalidated after their first use, allowing for indefinite reuse. This issue specifically affects app-based MFA when recovery codes are enabled; email-based MFA is not impacted. An attacker who has already compromised a user's primary password and obtained a recovery code can bypass the TOTP/app-based second factor. The vulnerability is patched in version 4.3.1.
Affected products
- filamentphp filament >= 4.0.0, < 4.3.1
Timeline
- 2025-12-09: disclosed
- 2025-12-09: advisory
- 2025-12-09: patched