← Back to CVE Explorer

CVE-2026-33667

Full vulnerability record from the local CVENow database.

Description

OpenProject is an open-source project management application. In versions prior to 17.3.0, 2FA OTP verification in the confirm_otp action of the two_factor_authentication module has no rate limiting, lockout mechanism, or failed-attempt tracking. The existing brute_force_block_after_failed_logins setting only counts password login failures and does not apply to the 2FA verification stage, and neither the fail_login nor stage_failure methods increment any counter, lock the account, or add any delay. With the default TOTP drift window of ±60 seconds allowing approximately 5 valid codes at any time, an attacker who knows a user's password can brute-force the 6-digit TOTP code at roughly 5-10 attempts per second with an expected completion time of approximately 11 hours. The same vulnerability applies to backup code verification. This effectively allows complete 2FA bypass for any account where the password is known. This issue has been fixed in version 17.3.0.

Severity
HIGH
CVSS score
7.4 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-04-15 19:16:35.603000
Last modified
2026-10-26 22:10:00.163000
View original CVE JSON
{
  "id": "CVE-2026-33667",
  "sourceIdentifier": "[email protected]",
  "published": "2026-04-15T19:16:35.603",
  "lastModified": "2026-10-26T22:10:00.163",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "OpenProject is an open-source project management application. In versions prior to 17.3.0, 2FA OTP verification in the confirm_otp action of the two_factor_authentication module has no rate limiting, lockout mechanism, or failed-attempt tracking. The existing brute_force_block_after_failed_logins setting only counts password login failures and does not apply to the 2FA verification stage, and neither the fail_login nor stage_failure methods increment any counter, lock the account, or add any delay. With the default TOTP drift window of ±60 seconds allowing approximately 5 valid codes at any time, an attacker who knows a user's password can brute-force the 6-digit TOTP code at roughly 5-10 attempts per second with an expected completion time of approximately 11 hours. The same vulnerability applies to backup code verification. This effectively allows complete 2FA bypass for any account where the password is known. This issue has been fixed in version 17.3.0."
    },
    {
      "lang": "es",
      "value": "OpenProject es una aplicación de gestión de proyectos de código abierto. En versiones anteriores a la 17.3.0, la verificación OTP de 2FA en la acción confirm_otp del módulo two_factor_authentication no tiene limitación de velocidad, mecanismo de bloqueo ni seguimiento de intentos fallidos. La configuración existente brute_force_block_after_failed_logins solo cuenta los fallos de inicio de sesión por contraseña y no se aplica a la etapa de verificación de 2FA, y ni los métodos fail_login ni stage_failure incrementan ningún contador, bloquean la cuenta o añaden ningún retraso. Con la ventana de deriva TOTP predeterminada de ±60 segundos que permite aproximadamente 5 códigos válidos en cualquier momento, un atacante que conoce la contraseña de un usuario puede forzar por fuerza bruta el código TOTP de 6 dígitos a aproximadamente 5-10 intentos por segundo con un tiempo de finalización esperado de aproximadamente 11 horas. La misma vulnerabilidad se aplica a la verificación de códigos de respaldo. Esto permite efectivamente la omisión completa de 2FA para cualquier cuenta donde la contraseña sea conocida. Este problema ha sido solucionado en la versión 17.3.0."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "opf",
          "product": "openproject",
          "versions": [
            {
              "version": "< 17.3.0",
              "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-04-15T19:59:53.990177Z",
          "id": "CVE-2026-33667",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-307"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:openproject:openproject:*:*:*:*:*:*:*:*",
              "versionEndExcluding": "17.3.0",
              "matchCriteriaId": "9C9F05E3-C32E-4932-BFBB-8F3E2D9D4292"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/opf/openproject/security/advisories/GHSA-234r-45m2-w6cv",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Mitigation",
        "Vendor Advisory"
      ]
    }
  ]
}