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
12920 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