Read the docs
TI-2026-25192 Aliases CVE-2026-32700GHSA-57hq-95w6-v4fc

Devise has a confirmable "change email" race condition that permits user to confirm email they have no access to

Priority MEDIUM 60CWE-362Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
High
Attack requirements
None
Impact type
—
Confidentiality · integrity · availability
None · High · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

Devise is an authentication solution for Rails based on Warden. Prior to version 5.0.3, a race condition in Devise's Confirmable module allows an attacker to confirm an email address they do not own. This affects any Devise application using the `reconfirmable` option (the default when using Confirmable with email changes). By sending two concurrent email change requests, an attacker can desynchronize the `confirmation_token` and `unconfirmed_email` fields. The confirmation token is sent to an email the attacker controls, but the `unconfirmed_email` in the database points to a victim's email address. When the attacker uses the token, the victim's email is confirmed on the attacker's account. This is patched in Devise v5.0.3. Users should upgrade as soon as possible. As a workaround, applications can override a specific method from Devise models to force `unconfirmed_email` to be persisted when unchanged. Note that Mongoid does not seem to respect that `will_change!` should force the attribute to be persisted, even if it did not really change, so the user might have to implement a workaround similar to Devise by setting `changed_attributes["unconfirmed_email"] = nil` as well.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00293 21st percentileScored 2026-11-07
Fix Fixed devise (heartcombo): 5.0.3devise (RubyGems): 5.0.3

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
heartcombodevisebefore 5.0.35.0.3Patch availableCNA
—devise (RubyGems)before 5.0.35.0.3Patch availableGHSA-57hq-95w6-v4fc
  • devise Vendorheartcombo Affected before 5.0.3 Fixed in 5.0.3 Patch available CNA
  • devise (RubyGems) Vendor— Affected before 5.0.3 Fixed in 5.0.3 Patch available GHSA-57hq-95w6-v4fc

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:heartcombo:devise:*:*:*:*:*:ruby:*:*before 5.0.3Vulnerableheartcombo
  • cpe:2.3:a:heartcombo:devise:*:*:*:*:*:ruby:*:* Versions before 5.0.3 Vulnerable ·heartcombo

Remediation

  • Fix · CNA devise (heartcombo) Fixed in 5.0.3
  • Fix · GHSA-57hq-95w6-v4fc devise (RubyGems) Fixed in 5.0.3 Advisory →

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-32700
  2. 2026-10-03 Alias added: GHSA-57hq-95w6-v4fc

References

  • TI-2015-06843 The Devise gem before 3.5.4 for Ruby mishandles Remember Me cookies for sessions, which… CVSS 3.1HIGH 7.5
  • TI-2026-29075 Devise: Open Redirect via Unvalidated `request.referrer` in Timeoutable Session Timeout Handler CVSS 3.1MEDIUM 6.1

Sources