Drupal security updates, in plain English · Module

Reset Password Email/SMS OTP

31 sites report using it · on drupal.org · 1 security update explained here

This module sends a one time code via email or text message to help users regain access to their accounts.

Below is every security update for Reset Password Email/SMS OTP that this site has covered, newest first. Each one says who could exploit it, whether it applies to your site, how urgent it is, and what to tell your developer. If your site uses this module and you are not sure which version, that is the first question to ask whoever looks after it.

Reset Password Email/SMS OTP

Critical · 31 sites report using it · SA-CONTRIB-2026-305 · on drupal.org · Week of 4 November 2026

The module allows password resets for accounts that have been blocked. Anyone could trigger this process to change the password for a blocked user and potentially view hidden information. They could only use the new password if an administrator unblocks the account.

  • Who could do thisAnyone visiting the site. No login needed.
  • Does it apply to youSites are affected if someone with the right access unblocks the affected user account.
  • Has it been used in attacksNo sign of it.
  • How urgentDrupal rates this critical. Cyber Essentials expects a fix within 14 days. Do it this week.

Tell your developerUpdate Reset Password Email/SMS OTP to 1.0.5.

For developers: what the fix changed

The fix ensures that the user account is active during the OTP verification steps by introducing the `loadOtpRecord` method in `src/Form/EmailOTPCheck.php`, which explicitly checks `$account->isActive()` before allowing the password reset to proceed.

Also in this release The release also adds Twilio SMS integration, hashes OTPs in the database, introduces flood control, refactors code into services, and adds Drupal 12 compatibility.

1.0.4 to 1.0.5 11 commits, 31 files including 11 tests.

  • .cspell-project-words.txt +3 −0
  • .gitlab-ci.yml +5 −0
  • composer.json +19 −0
  • config/install/reset_password_email_otp.settings.yml +16 −4
  • config/schema/reset_password_email_otp.yml +32 −6
  • css/reset-password-email-otp.css +14 −0
  • reset_password_email_otp.api.php +39 −0
  • reset_password_email_otp.info.yml +2 −2
  • reset_password_email_otp.install +38 −1
  • reset_password_email_otp.libraries.yml +4 −0
  • reset_password_email_otp.module +6 −35
  • reset_password_email_otp.post_update.php +13 −0

Full diff, 1.0.4 to 1.0.5

The comparison is against the release immediately before the fix. If your site is on an older release, more will have changed.

Not sure what your site is running?

Send me your Drupal site's address.

I'll tell you what I can see from outside, what the Drupal 10 end of life on 9 December means for it, and what it would cost to have me keep it patched. There's no charge for that and no obligation. peter@peterbrady.co.uk


Get in touch

Tell me who you are, what your organisation does, and what you need. That might be a Drupal site that needs looking after, an upgrade to get done before December, or an agency that needs Drupal cover.

If I can help, I'll say so and suggest a call. If I can't, I'll tell you straight away rather than waste your time.

peter@peterbrady.co.uk

For context: I work mainly with UK membership bodies, charities and research organisations, and with the agencies that look after their websites. Not recruiters.

Or start smaller and connect with me on LinkedIn. That's where I post what I find digging around in charity and grants data, and where the free tools turn up first.