← Back to CVE Explorer

CVE-2026-62669

Full vulnerability record from the local CVENow database.

Description

Grav Login Plugin adds login, basic ACL, and session wide messages to Grav. Prior to 3.8.11, the Grav Login plugin login.regenerate2FASecret task checks only that the pending-session user exists rather than requiring $user->authorized. After submitting a victim's correct password, an attacker can invoke taskRegenerate2FASecret() during the pending TOTP challenge, overwrite twofa_secret, read the replacement secret from the response, calculate a valid code, and complete authentication without the victim's second factor. This issue is fixed in version 3.8.11.

Severity
HIGH
CVSS score
7.4 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-08-19 16:18:19.460000
Last modified
2026-10-26 11:10:00.157000
View original CVE JSON
{
  "id": "CVE-2026-62669",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-19T16:18:19.460",
  "lastModified": "2026-10-26T11:10:00.157",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Grav Login Plugin adds login, basic ACL, and session wide messages to Grav. Prior to 3.8.11, the Grav Login plugin login.regenerate2FASecret task checks only that the pending-session user exists rather than requiring $user->authorized. After submitting a victim's correct password, an attacker can invoke taskRegenerate2FASecret() during the pending TOTP challenge, overwrite twofa_secret, read the replacement secret from the response, calculate a valid code, and complete authentication without the victim's second factor. This issue is fixed in version 3.8.11."
    },
    {
      "lang": "es",
      "value": "El plugin de inicio de sesión de Grav añade inicio de sesión, ACL básica y mensajes a nivel de sesión a Grav. Antes de la versión 3.8.11, la tarea login.regenerate2FASecret del plugin de inicio de sesión de Grav solo verifica que el usuario de la sesión pendiente exista en lugar de requerir $user  ->  authorized. Después de enviar la contraseña correcta de una víctima, un atacante puede invocar taskRegenerate2FASecret() durante el desafío TOTP pendiente, sobrescribir twofa_secret, leer el secreto de reemplazo de la respuesta, calcular un código válido y completar la autenticación sin el segundo factor de la víctima. Este problema está solucionado en la versión 3.8.11."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "getgrav",
          "product": "grav",
          "versions": [
            {
              "version": "< 2.0.4",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "getgrav",
          "product": "grav-plugin-login",
          "versions": [
            {
              "version": "< 3.8.11",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "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:N",
          "baseScore": 7.4,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.2,
        "impactScore": 5.2
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-19T18:16:05.801751Z",
          "id": "CVE-2026-62669",
          "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-287"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/getgrav/grav-plugin-login/commit/5d1b722298cb947d8f434025d121b99152a2c630",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/getgrav/grav-plugin-login/releases/tag/3.8.11",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/getgrav/grav/security/advisories/GHSA-7mgc-c7pq-3rr3",
      "source": "[email protected]"
    }
  ]
}