Skip to content
Heist/ feed
Back to feed
Medium

FileRise: TOTP codes are not single-use — valid 6-digit code can be replayed within its window (capture-replay)

Type: advisorySources: OSV

FileRise is a self-hosted web-based file manager with multi-file upload, editing, and batch operations. Prior to 3.23.0, FileRise verifies that a TOTP code is valid for the accepted time window but does not record that the same account and time step already succeeded. An attacker who has the target account's valid primary credential and captures a TOTP code after its successful use can replay that code from another pending-login session before the window closes. The issue does not by itself disclose the primary credential or TOTP code. This issue is fixed in version 3.23.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-104105
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:34 UTC · Revision 1

Source evidence

FileRise: TOTP codes are not single-use — valid 6-digit code can be replayed within its window (capture-replay)

core-osv · Original source

Published 14 Oct 2026, 20:37 UTC

FileRise is a self-hosted web-based file manager with multi-file upload, editing, and batch operations. Prior to 3.23.0, FileRise verifies that a TOTP code is valid for the accepted time window but does not record that the same account and time step already succeeded. An attacker who has the target account's valid primary credential and captures a TOTP code after its successful use can replay that code from another pending-login session before the window closes. The issue does not by itself disclose the primary credential or TOTP code. This issue is fixed in version 3.23.0.

osv:CVE-2026-104105
Complete source record
{
  "id": "657f2993b2f05e7f6fede3a45d21f0ed4d39924922d3433448ce9f03a0f897ff",
  "url": "https://osv.dev/vulnerability/CVE-2026-104105",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "FileRise: TOTP codes are not single-use — valid 6-digit code can be replayed within its window (capture-replay)",
    "summary": "FileRise is a self-hosted web-based file manager with multi-file upload, editing, and batch operations. Prior to 3.23.0, FileRise verifies that a TOTP code is valid for the accepted time window but does not record that the same account and time step already succeeded. An attacker who has the target account's valid primary credential and captures a TOTP code after its successful use can replay that code from another pending-login session before the window closes. The issue does not by itself disclose the primary credential or TOTP code. This issue is fixed in version 3.23.0.",
    "evidence": "osv:CVE-2026-104105",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-104105",
      "aliases": [
        "CVE-2026-104105",
        "GHSA-9pg4-98cx-r82j"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/error311/filerise",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "a5e6e8bfbe1ce976d93a58448e9c6e26843bee6e"
                },
                {
                  "fixed": "cc1118923b522baff28dca05bdd79c27f984c68a"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.23.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "cc1118923b522baff28dca05bdd79c27f984c68a"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "a5e6e8bfbe1ce976d93a58448e9c6e26843bee6e"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v3.23.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.22.0",
            "v3.21.0",
            "v3.20.0",
            "v3.19.0",
            "v3.18.0",
            "v3.17.0",
            "v3.16.0",
            "v3.15.0",
            "v3.14.0",
            "v3.13.0",
            "v3.12.0",
            "v3.11.2",
            "v3.11.1",
            "v3.11.0",
            "v3.10.0",
            "v3.9.4",
            "v3.9.3",
            "v3.9.2",
            "v3.9.1",
            "v3.9.0",
            "v3.8.0",
            "v3.7.0",
            "v3.6.1",
            "v3.6.0",
            "v3.5.2",
            "v3.5.1",
            "v3.5.0",
            "v3.4.1",
            "v3.4.0",
            "v3.3.3",
            "v3.3.2",
            "v3.3.1",
            "v3.3.0",
            "v3.2.4",
            "v3.2.3",
            "v3.2.2",
            "v3.2.1",
            "v3.1.7",
            "v3.1.6",
            "v3.1.4",
            "v3.1.3",
            "v3.1.2",
            "v3.1.1",
            "v3.1.0",
            "v3.0.2",
            "v3.0.1",
            "v3.0.0",
            "v2.13.1",
            "v2.13.0",
            "v2.12.1",
            "v2.12.0",
            "v2.11.4",
            "v2.11.3",
            "v2.11.2",
            "v2.11.1",
            "v2.11.0",
            "v2.10.5",
            "v2.10.4",
            "v2.10.1",
            "v2.9.3",
            "v2.9.2",
            "v2.8.0",
            "v2.7.1",
            "v2.7.0",
            "v2.6.2",
            "v2.6.1",
            "v2.5.2",
            "v2.5.1",
            "v2.5.0",
            "v2.4.0",
            "v2.3.7",
            "v2.3.6",
            "v2.3.5",
            "v2.3.4",
            "v2.3.2",
            "v2.3.1",
            "v2.3.0",
            "v2.2.4",
            "v2.2.3",
            "v2.2.2",
            "v2.2.1",
            "v2.1.0",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v1.9.14",
            "v1.9.13",
            "v1.9.12",
            "v1.9.11",
            "v1.9.10",
            "v1.9.9",
            "v1.9.8",
            "v1.9.7",
            "v1.9.6",
            "v1.9.5",
            "v1.9.4",
            "v1.9.3",
            "v1.9.2",
            "v1.9.1",
            "v1.9.0",
            "v1.8.13",
            "v1.8.12",
            "v1.8.11",
            "v1.8.10",
            "v1.8.9",
            "v1.8.8",
            "v1.8.7",
            "v1.8.6",
            "v1.8.5",
            "v1.8.4",
            "v1.8.3",
            "v1.8.2",
            "v1.8.1",
            "v1.8.0",
            "v1.7.5",
            "v1.7.4",
            "v1.7.3",
            "v1.7.2",
            "v1.6.11",
            "v1.6.10",
            "v1.6.9",
            "v1.6.8",
            "v1.6.7",
            "v1.6.6",
            "v1.6.5",
            "v1.6.3",
            "v1.6.2",
            "v1.6.1",
            "v1.6.0",
            "v1.5.3",
            "v1.5.2",
            "v1.5.1",
            "v1.5.0",
            "1.4.0",
            "v1.3.15",
            "v1.3.13",
            "v1.3.9",
            "v1.3.8",
            "v1.3.7",
            "v1.3.6",
            "v1.3.5",
            "v1.3.4",
            "v1.3.3",
            "v1.3.2",
            "v1.3.1",
            "v1.3.0",
            "v1.2.8",
            "v1.2.7",
            "v1.2.6",
            "v1.2.5",
            "v1.2.4",
            "v1.2.3",
            "v1.2.2",
            "v1.2.1",
            "v1.2.0",
            "v1.1.3",
            "v1.1.2",
            "v1.1.1",
            "v1.1.0",
            "v1.0.9",
            "v1.0.8",
            "v1.0.7",
            "v1.0.6",
            "v1.0.5",
            "v1.0.4",
            "v1.0.3",
            "v1.0.2",
            "v1.0.1",
            "v1.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-104105.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.600167724Z",
      "provider": "osv",
      "references": [
        "https://github.com/error311/FileRise/releases/tag/v3.23.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104105.json",
        "https://github.com/error311/FileRise/security/advisories/GHSA-9pg4-98cx-r82j",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-104105",
        "https://github.com/error311/FileRise/commit/cc1118923b522baff28dca05bdd79c27f984c68a"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-287",
          "CWE-294"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104105.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-104105",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504748,
  "published_at": "2026-10-14T20:37:44.884+00:00"
}