Skip to content

← Public intelligence

RubyGems package

devise-two-factor

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

3 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Medium, CVSS 6.0RubyGemsPublished

    Devise-Two-Factor Authentication Uses Insufficient Default OTP Shared Secret Length

    CVE-2024-8796 · GHSA-qjxf-mc72-wjr2

    Affected
    • RubyGems devise-two-factor >= 4.0.0, < 6.0.0; >= 1.0.0, <= 1.0.0
    Fixed in
    6.0.0· Partial vendor fix
    Issue
    Under the default configuration, Devise-Two-Factor versions 1.0.0 or = 4.0.0 & < 6.0.0 generate TOTP shared secrets that are 120 bits instead of the 128-bit minimum defined by RFC 4226. Using a shared secret shorter than the minimum to generate a multi-factor authentication code could make it easier for an attacker to guess the shared secret and generate valid TOTP codes. Remediation Devise-Two-Factor should be upgraded to version v6.0.0 as soon as possible. After upgrading, the length of shared secrets and TOTP URLs generated by the library will increase since the new shared secrets will be longer. If upgrading is not possible, you can override the default otpsecretlength attribute in the model when configuring twofactorauthenticable and set it to a value of at least 26 to ensure newly generated shared secrets are at least 128-bits long. After upgrading or implementing the workaround, applications using Devise-Two-Factor may wish to migrate users to the new OTP length to…

    Recommended action: Upgrade to 6.0.0; some affected versions have no fix yet, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  2. Medium, CVSS 5.3RubyGemsPublished

    Improper one time password handling in devise-two-factor

    CVE-2021-43177 · GHSA-jm35-h8q2-73mp

    Affected
    • RubyGems devise-two-factor < 4.0.2
    Fixed in
    4.0.2· Vendor fix available
    Issue
    Impact As a result of an incomplete fix for CVE-2015-7225, in versions of devise-two-factor prior to 4.0.2 it is possible to reuse a One-Time-Password (OTP) for one (and only one) immediately trailing interval. Patches This vulnerability has been patched in version 4.0.2 which was released on March 24th, 2022. Individuals using this package are strongly encouraged to upgrade as soon as possible. Credit for discovery Benoit Côté-Jodoin Michael Nipper - https://github.com/tinfoil/devise-two-factor/issues/106

    Recommended action: Upgrade to 4.0.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  3. Medium, CVSS 5.3RubyGemsPublished

    Tinfoil Devise-two-factor does not "burn" a successfully validated one-time password (OTP)

    CVE-2015-7225 · GHSA-x489-jjwm-52g7

    Affected
    • RubyGems devise-two-factor < 2.0.0
    Fixed in
    2.0.0· Vendor fix available
    Issue
    Tinfoil Devise-two-factor before 2.0.0 does not strictly follow RFC 6238 § 5.2 and does not "burn" a successfully validated one-time password (aka OTP), which allows physically proximate attackers with a target user's login credentials to log in as said user by obtaining the OTP through performing a man-in-the-middle attack between the provider and verifier, or "shoulder surfing", and replaying the OTP in the current time-step.

    Recommended action: Upgrade to 2.0.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →