2026-06-22 21:39CVE-2026-48505GitHub_M
PUBLISHED5.2CWE-362CWE-841

Filament: Multi-factor authentication (app) recovery codes can still be used multiple times via concurrent submission

Filament is a collection of full-stack components for accelerated Laravel development. From 4.0.0 until 4.11.5 and 5.6.5, a flaw in the handling of recovery codes for app-based multi-factor authentication allows the same recovery code to be reused via concurrent submission. This issue does not affect email-based MFA. It also only applies when recovery codes are enabled. If an attacker gains access to both the user's password and their recovery codes, they get two authenticated sessions per recovery code burned instead of one, or more if they batch the parallel submissions wider, materially extending the attacker's window of access compared to what the single-use guarantee implies. This vulnerability is fixed in 4.11.5 and 5.6.5.

Problem type

Affected products

filamentphp

filament

>= 4.0.0, < 4.11.5 - AFFECTED

>= 5.0.0, < 5.6.5 - AFFECTED

References

GitHub Security Advisories

GHSA-mc5j-f6wx-h9qh

Filament: Multi-factor authentication (app) recovery codes can still be used multiple times via concurrent submission

https://github.com/advisories/GHSA-mc5j-f6wx-h9qh

A flaw in the handling of recovery codes for app-based multi-factor authentication allows the same recovery code to be reused via concurrent submission. This issue does not affect email-based MFA. It also only applies when recovery codes are enabled.

If an attacker gains access to both the user's password and their recovery codes, they get two authenticated sessions per recovery code burned instead of one, or more if they batch the parallel submissions wider, materially extending the attacker's window of access compared to what the single-use guarantee implies.

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-48505
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-48505",
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "dateUpdated": "2026-06-22T21:42:19.537Z",
    "dateReserved": "2026-05-21T16:18:10.618Z",
    "datePublished": "2026-06-22T21:39:26.304Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M",
        "dateUpdated": "2026-06-22T21:42:19.537Z"
      },
      "title": "Filament: Multi-factor authentication (app) recovery codes can still be used multiple times via concurrent submission",
      "descriptions": [
        {
          "lang": "en",
          "value": "Filament is a collection of full-stack components for accelerated Laravel development. From 4.0.0 until 4.11.5 and 5.6.5, a flaw in the handling of recovery codes for app-based multi-factor authentication allows the same recovery code to be reused via concurrent submission. This issue does not affect email-based MFA. It also only applies when recovery codes are enabled. If an attacker gains access to both the user's password and their recovery codes, they get two authenticated sessions per recovery code burned instead of one, or more if they batch the parallel submissions wider, materially extending the attacker's window of access compared to what the single-use guarantee implies. This vulnerability is fixed in 4.11.5 and 5.6.5."
        }
      ],
      "affected": [
        {
          "vendor": "filamentphp",
          "product": "filament",
          "versions": [
            {
              "version": ">= 4.0.0, < 4.11.5",
              "status": "affected"
            },
            {
              "version": ">= 5.0.0, < 5.6.5",
              "status": "affected"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')",
              "cweId": "CWE-362",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-841: Improper Enforcement of Behavioral Workflow",
              "cweId": "CWE-841",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/filamentphp/filament/security/advisories/GHSA-mc5j-f6wx-h9qh",
          "name": "https://github.com/filamentphp/filament/security/advisories/GHSA-mc5j-f6wx-h9qh",
          "tags": [
            "x_refsource_CONFIRM"
          ]
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "version": "3.1",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "attackVector": "NETWORK",
            "attackComplexity": "HIGH",
            "privilegesRequired": "NONE",
            "userInteraction": "NONE",
            "scope": "UNCHANGED",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "availabilityImpact": "NONE",
            "baseScore": 7.4,
            "baseSeverity": "HIGH"
          }
        }
      ]
    }
  }
}