← Back to CVE Explorer

CVE-2026-55370

Full vulnerability record from the local CVENow database.

Description

Logto is the modern, open-source auth infrastructure for SaaS and AI apps. Prior to 1.41.0, Logto's existing TOTP verification accepted a successfully used TOTP code again while the code remained inside the RFC 6238 acceptance window because the verifier used otplib's stateless check with window = 1 and did not persist or compare the accepted TOTP time-step counter. An attacker who has the victim's first factor and captures a live TOTP value can replay that value to satisfy MFA during the same acceptance window. This issue is fixed in version 1.41.0.

Severity
MEDIUM
CVSS score
6.4 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-07-10 20:16:46.333000
Last modified
2026-10-25 15:10:00.147000
View original CVE JSON
{
  "id": "CVE-2026-55370",
  "sourceIdentifier": "[email protected]",
  "published": "2026-07-10T20:16:46.333",
  "lastModified": "2026-10-25T15:10:00.147",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Logto is the modern, open-source auth infrastructure for SaaS and AI apps. Prior to 1.41.0, Logto's existing TOTP verification accepted a successfully used TOTP code again while the code remained inside the RFC 6238 acceptance window because the verifier used otplib's stateless check with window = 1 and did not persist or compare the accepted TOTP time-step counter. An attacker who has the victim's first factor and captures a live TOTP value can replay that value to satisfy MFA during the same acceptance window. This issue is fixed in version 1.41.0."
    },
    {
      "lang": "es",
      "value": "Logto es la infraestructura de autenticación moderna y de código abierto para aplicaciones SaaS y de IA. Antes de la versión 1.41.0, la verificación TOTP existente de Logto aceptaba un código TOTP utilizado con éxito de nuevo mientras el código permanecía dentro de la ventana de aceptación de RFC 6238 porque el verificador utilizaba la comprobación sin estado de otplib con window = 1 y no persistía ni comparaba el contador de pasos de tiempo TOTP aceptado. Un atacante que tiene el primer factor de la víctima y captura un valor TOTP en vivo puede reproducir ese valor para satisfacer la MFA durante la misma ventana de aceptación. Este problema se solucionó en la versión 1.41.0."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "logto-io",
          "product": "logto",
          "versions": [
            {
              "version": "< 1.41.0",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N",
          "baseScore": 6.4,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "LOW",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 1.2,
        "impactScore": 5.2
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-10T20:14:33.407390Z",
          "id": "CVE-2026-55370",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-294"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/logto-io/logto/commit/9118867f6cbadc7291cf913beb4fede91ed5d374",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/logto-io/logto/pull/9109",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/logto-io/logto/releases/tag/v1.41.0",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/logto-io/logto/security/advisories/GHSA-6wj7-c66m-6c82",
      "source": "[email protected]"
    }
  ]
}