CVE-2025-7393

9.8 CRITICAL

📋 TL;DR

This vulnerability in Drupal Mail Login modules allows attackers to perform unlimited authentication attempts without rate limiting, enabling brute force attacks against user accounts. It affects Drupal sites using Mail Login modules versions 3.0.0-3.1.x and 4.0.0-4.1.x. Attackers can potentially compromise user credentials through systematic guessing.

💻 Affected Systems

Products:
  • Drupal Mail Login module
Versions: 3.0.0 through 3.1.x, 4.0.0 through 4.1.x
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Drupal sites with Mail Login module enabled. The module allows email-based authentication instead of username.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain administrative access to Drupal sites by brute-forcing admin credentials, leading to complete site compromise, data theft, defacement, or malware injection.

🟠

Likely Case

Attackers compromise regular user accounts to access sensitive content, perform privilege escalation, or use compromised accounts for further attacks.

🟢

If Mitigated

With proper rate limiting and monitoring, attacks are detected and blocked before successful credential compromise.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Brute force attacks require no special tools - attackers can use standard HTTP requests or tools like Hydra/Burp Suite.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.2.0 for 3.x branch, 4.2.0 for 4.x branch

Vendor Advisory: https://www.drupal.org/sa-contrib-2025-088

Restart Required: No

Instructions:

1. Update Mail Login module to version 3.2.0 (if using 3.x) or 4.2.0 (if using 4.x). 2. Use Composer: 'composer update drupal/mail_login'. 3. Or download from Drupal.org and replace module files. 4. Clear Drupal cache.

🔧 Temporary Workarounds

Implement Web Application Firewall Rate Limiting

linux

Configure WAF or reverse proxy to limit authentication attempts per IP address

# Example nginx rate limiting:
limit_req_zone $binary_remote_addr zone=auth:10m rate=5r/m;
location /user/login {
    limit_req zone=auth burst=10 nodelay;
}

Enable Drupal Flood Control

all

Configure Drupal's built-in flood control mechanism for login forms

# In settings.php:
$settings['flood']['user.failed_login_ip']['limit'] = 5;
$settings['flood']['user.failed_login_ip']['window'] = 300;

🧯 If You Can't Patch

  • Disable Mail Login module and use standard Drupal authentication
  • Implement IP-based blocking for excessive failed login attempts using fail2ban or similar tools

🔍 How to Verify

Check if Vulnerable:

Check Mail Login module version in Drupal admin at /admin/modules or via Drush: 'drush pm-list --type=module --status=enabled | grep mail_login'

Check Version:

drush pm-list --type=module --status=enabled --fields=name,version | grep mail_login

Verify Fix Applied:

Confirm module version is 3.2.0+ or 4.2.0+ and test authentication with multiple failed attempts to verify rate limiting works

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed login attempts from same IP address
  • Unusual authentication patterns outside business hours
  • Rapid sequence of POST requests to /user/login

Network Indicators:

  • High volume of authentication requests
  • Traffic patterns showing credential stuffing tools

SIEM Query:

source="drupal_access.log" (POST /user/login) | stats count by src_ip | where count > 10

🔗 References

📤 Share & Export