Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-85706-PoC-Toolkit — Python toolkit for CVE-2026-85706 GitLab unauth file read: weaponized exploit with loot, shell, mass scan, plus non-intrusive SafeChecker audit and reporting. | Kitploit
Tools/GitHubGitHub/tc4dy/cve-2026-85706-poc-toolkit
Defensive ToolsVulnerability ScannersVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPost-ExploitationWeb SecurityPenetration Testing

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Red Teaming
GitHubtc4dy/cve-2026-85706-poc-toolkit

CVE-2026-85706-PoC-Toolkit

Python toolkit for CVE-2026-85706 GitLab unauth file read: weaponized exploit with loot, shell, mass scan, plus non-intrusive SafeChecker audit and reporting.

View RepositoryWebsite
14320 days agoNot yet reviewed
Share

CVEPoC

CVE‑2026‑85706 – GitLab Unauthenticated File Read Toolkit

Python 3.8+ CVSS Author GitLab

** ETHICAL USE ONLY – AUTHORIZED SECURITY TESTING**
This repository provides tools for authorized security professionals, blue teams, and penetration testers only.
Unauthorized access to computer systems is illegal under CFAA (US), Computer Misuse Act (UK), TCK 243/244 (Turkey), and similar laws worldwide.


Vulnerability Overview

CVE‑2026‑85706 is a critical unauthenticated arbitrary local file read vulnerability in self-managed GitLab CE/EE (versions 18.7 through 19.3.1) that allows an unauthenticated attacker to read any file on the server via a single HTTP request to the commits API.

How it works

  1. Workhorse vs. Puma parsing mismatch – GitLab Workhorse validates the request path before percent‑decoding, while Puma/Rails decodes it after. This allows bypassing Workhorse's security checks using encoded characters like %63ommits.
  2. Pre-auth file open – the /api/v4/projects/{id}/repository/commits endpoint opens the file specified in file.path before authentication is enforced.
  3. Content echo via error – if the file contains an invalid %-sequence, Rack echoes the content in a 400 Bad Request body, leaking the full content.
  4. Impact – secrets, tokens, SSH keys, CI/CD variables, database credentials, and lateral movement into the GitLab infrastructure. Upgrade immediately!

Affected Versions

  • 18.7.0 – 19.1.7 – vulnerable
  • 19.2.0 – 19.2.5 – vulnerable
  • 19.3.0 – 19.3.1 – vulnerable

Patch

  • Upgrade to 19.1.8, 19.2.6, or 19.3.2 or newer.
  • If upgrade is not possible, restrict network access to GitLab (never expose it to the internet) and rotate all tokens/secrets as a temporary workaround.

Tools

ToolPurposeIntended User
exploit.pyFull weaponized toolkit with unauthenticated file read, loot enumeration, admin token extraction, mass scanning, interactive shell, proxy rotation, stealth mode, and multi-format reporting.Red teams / authorized pentesters
safechecker.pyNon‑intrusive vulnerability checker that detects GitLab version, validates exposure, audits security headers, and assesses risk without reading any file. Generates JSON/CSV/HTML reports.Blue teams / security auditors

Feature Comparison

Featureexploit.pysafechecker.py
Vulnerability detection[+][+]
Version detection[+][+]
Unauthenticated file read[+][-]
Loot enumeration[+][-]
Admin token extraction[+][-]
Interactive shell[+][-]
Mass scanning (multi‑thread)[+][+]
Security headers audit[-][+]
TLS/certificate check[-][+]
MITRE ATT&CK mapping[+][+]
Proxy support[+][+]
Proxy rotation[+][-]
User‑Agent rotation (OPSEC)[+][-]
Jitter / delay (OPSEC)[+][-]
Adaptive rate limiter[+][+]
Stealth mode[+][-]
curl_cffi TLS impersonation[+][-]
Non‑intrusive (safe) mode[-][+]
JSON / JSONL / CSV / HTML output[+][+]
SQLite DB output[+][-]
Webhook notification[+][+]
Diff against previous scan[+][+]
Log cleanup (anti‑forensic)[+][-]
Custom User‑Agent[+][+]
SSL verification control[+][+]

Use Case Summary

ScenarioRecommended Tool
Blue Team – verifying if your GitLab is vulnerablesafechecker.py
Security Audit – non‑intrusive vulnerability assessmentsafechecker.py
Red Team – authorized penetration testing with full exploitationexploit.py
Bug Bounty – responsible disclosure testingsafechecker.py
Mass Scanning – checking multiple targets for vulnerabilityexploit.py (detect‑only)
Incident Response – checking if systems are compromisedsafechecker.py

Installation

git clone https://github.com/tc4dy/CVE-2026-85706-PoC-Toolkit
cd CVE-2026-85706-PoC-Toolkit
pip install -r requirements.txt

requirements.txt

requests
urllib3
curl_cffi
rich
pyyaml

Parameters

exploit.py Parameters

ParameterDescription
-u, --urlSingle target URL (e.g. https://gitlab.example.com)
-f, --fileFile containing list of targets (one per line)
--pipeRead targets from stdin (subfinder/httpx pipeline)
--readAbsolute path(s) to read, comma-separated
--wordlistFile with paths to read (one per line)
--project-idForce a specific project ID
--max-projectsMax project IDs to try (default: 8)
--autoLoot high-value GitLab files automatically
--lootSame as --auto
--shellInteractive shell after exploitation
--forceScan even if GitLab fingerprint is weak
-t, --threadsThreads for multi‑target (default: 8)
--timeoutHTTP timeout (default: 15s)
--retryRetry count (default: 3)
--retry-onHTTP codes to retry (default: 429,500,502,503,504)
--proxyHTTP/HTTPS proxy
--proxy-listFile with proxies for rotation
--proxy-rotateRotation strategy: round-robin, random, sticky
--jitterAdd random jitter between requests
--jitter-rangeJitter min,max seconds (default: 0.1,2.0)
--delayFixed delay between requests
--stealthEnable stealth mode (UA rotation + X-Forwarded-For)
--curl-cffiUse curl_cffi for TLS fingerprint impersonation
--user-agent-fileFile with User-Agent strings
--max-bodyMax response body size (0 = unlimited)
--concurrent-per-hostMax concurrent requests per host
--rate-limitMax requests per second (0 = unlimited)
--excludeComma-separated hosts to exclude (glob patterns)
--grepOnly show leaks matching regex
--resumeResume from state file
--notifyNotification URL (slack:, discord:, telegram:)
--dbSave results to SQLite database
--output-formatOutput format: json, jsonl, csv, html
-o, --outputOutput file path
-v, --verboseVerbose output
-q, --quietQuiet mode
--no-colorDisable colors
--no-bannerNo banner
--configYAML/JSON config file
--dry-runShow plan without making requests
--safe-modeOnly read /etc/hostname to verify
--timeout-profileaggressive, normal, stealth
--mitreInclude MITRE ATT&CK mapping
--fingerprintDetailed GitLab fingerprint
--cve-checkCheck for related CVEs
--json-schemaOutput with JSON schema for SIEM
--progressShow progress bar (requires rich)

safechecker.py Parameters

Download Tool