Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-10053-lab — CVE-2026-10053 के लिए पुनरुत्पादन-योग्य लैब (GitLab npm पैकेज-रजिस्ट्री पथ ट्रैवर्सल -> git के रूप में मनमानी फ़ाइल लेखन)। असुरक्षित 19.2.1 बनाम पैच किया गया 19.2.2, निर्धारणात्मक ओरेकल। | Kitploit
उपकरण/GitHubGitHub/dinosn/cve-2026-10053-lab
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHubdinosn/cve-2026-10053-lab

CVE-2026-10053-lab

CVE-2026-10053 के लिए पुनरुत्पादन-योग्य लैब (GitLab npm पैकेज-रजिस्ट्री पथ ट्रैवर्सल -> git के रूप में मनमानी फ़ाइल लेखन)। असुरक्षित 19.2.1 बनाम पैच किया गया 19.2.2, निर्धारणात्मक ओरेकल।

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

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

सभी देखें →

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

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

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

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

CVE-2026-10053 — पुनरुत्पादनीय सत्यापन लैब

स्व-निहित लैब जो GitLab npm पैकेज-रेजिस्ट्री पाथ ट्रैवर्सल (CVE-2026-10053) को सिद्ध करती है और दिखाती है कि यह ठीक हो गया है, एक नियतात्मक ऑन-डिस्क ओरेकल का उपयोग करते हुए — HTTP स्टेटस नहीं।

क्या सिद्ध है और क्या नहीं। यह लैब कमजोर GitLab पर git OS उपयोगकर्ता के रूप में प्रमाणित मनमाना फ़ाइल लेखन सिद्ध करती है, और यह कि पैच किया गया रिलीज़ इसे रोकता है। यह नहीं है एक स्टैंडअलोन रिमोट-कोड-एक्सिक्यूशन PoC — देखें दायरा। इसे RCE के रूप में उद्धृत न करें।

टूल डाउनलोड करें
भेद्यताnpm पैकेज रजिस्ट्री में CWE-22 पाथ ट्रैवर्सल (TOCTOU: जाँच before :cache पर चली, before :store पर नहीं)
CVSS8.5 उच्च — AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
प्रभावितGitLab CE/EE 18.8 → <19.0.6, 19.1 → <19.1.4, 19.2 → <19.2.2
समाधान19.0.6 / 19.1.4 / 19.2.2 — commit 435cf863 "अपलोड पाथ ट्रैवर्सल को स्टोर से पहले पुनः सत्यापित करें"

आवश्यकताएँ

  • होस्ट पर Docker + docker compose, python3, git, curl।
  • ~8 GB खाली RAM (दो GitLab इंस्टेंस, ~4 GB प्रत्येक) और ~10 GB डिस्क। पहला बूट: 4–8 मिनट/इंस्टेंस।
  • इन्हें केवल इन स्थानीय लैब इंस्टेंस पर चलाएँ। अपने नियंत्रण वाले सॉफ़्टवेयर का अधिकृत/रक्षात्मक परीक्षण।

चलाएँ

root@kitploit:~
./run.sh            # up + provision + exploit + verify BOTH; exits 0 iff vuln writes AND patched blocks

अपेक्षित परिणाम:

root@kitploit:~
================ CVE-2026-10053 verification ================
  INSTANCE                   EXPECT    RESULT    STATUS
  gitlab-vuln  (19.2.1)      written   written   PASS
  gitlab-patched (19.2.2)    blocked   blocked   PASS
  ------------------------------------------------------------
  PROVEN: authenticated arbitrary file write as git on 19.2.1.
  NOT a standalone RCE — see README.md 'Scope' and ./run.sh rce-gate.
============================================================

अन्य उप-कमांड:

root@kitploit:~
./run.sh up         # just start + wait until healthy
./run.sh rce-gate   # honest exec-bit-gate demo (below)
./run.sh down       # docker compose down -v

ओरेकल कैसे काम करता है (कोई HTTP-200 धोखा नहीं)

कमजोर और पैच किए गए दोनों सर्वर दुर्भावनापूर्ण पब्लिश का जवाब HTTP 200 {"status":"processing"} से देते हैं — फ़ाइल बाद में, फ़ाइनलाइज़ वर्कर में लिखी जाती है। इसलिए HTTP स्टेटस कोई ओरेकल नहीं है। exploit/poc.py --verify-docker <container> इसके बजाय कंटेनर के अंदर ट्रैवर्स किए गए पथ पर नियंत्रित फ़ाइल के लिए पोल करता है और उसके SHA-1 की तुलना करता है:

  • कमजोर → /var/tmp/CVE_2026_10053_PROOF-1.0.0.tgz दिखाई देता है (मालिक git:git, हमारे बाइट्स) → exit 0.
  • पैच किया गया → फ़ाइल कभी दिखाई नहीं देती; वर्कर लॉग करता है Gitlab::PathTraversal::PathTraversalAttackError: Invalid path → exit 2.

एक्सप्लॉइट स्वयं प्रमाणित PUT …/packages/npm/:pkg अनुरोध के अलावा कुछ नहीं है; ट्रैवर्सल पूरी तरह से JSON बॉडी name में रहता है (file_name = "#{name}-#{version}.tgz", केवल खाली होने की जाँच की गई)। docker exec कॉल सत्यापन और सेटअप हैं, कभी भी हमलावर की क्षमता का हिस्सा नहीं।

दायरा

  • सिद्ध: एक प्रमाणित उपयोगकर्ता (Developer+ पैकेज प्रकाशित कर सकता है; यह लैब सेटअप की सुविधा के लिए रूट PAT का उपयोग करता है) किसी भी git-लेखनीय पथ पर हमलावर-नियंत्रित बाइट्स लिखता है। फ़ाइलें 0644 के रूप में बनती हैं।
  • यहाँ सिद्ध नहीं: RCE। संग्रहीत बेसनेम -<semver>.tgz पर समाप्त होने के लिए बाध्य है (NUL कर्नेल द्वारा अस्वीकार कर दिया जाता है, newline ट्रंकेट नहीं करता), इसलिए कोई भी सटीक-नाम लक्ष्य (secrets.yml, authorized_keys, एक .rb, gitaly बाइनरी) अधिलेखित नहीं किया जा सकता। एकमात्र फ़ाइलनाम-अज्ञेय निष्पादक, custom_hooks/<hook>.d/, किसी भी फ़ाइलनाम को चलाता है लेकिन केवल यदि वह executable है — और यह लेखन 0644 है। पहले से मौजूद 0755 फ़ाइल को अधिलेखित करने से कोई मदद नहीं मिलती: स्टोर इनोड को बदल देता है, उसे 0644 पर रीसेट कर देता है। इसलिए RCE के लिए एक अलग executable-bit / निष्पादन प्रिमिटिव चाहिए जो यह PoC प्रदान नहीं करता।

./run.sh rce-gate ठीक इसी को ईमानदारी से प्रदर्शित करता है: यह ट्रैवर्सल के माध्यम से एक pre-receive.d हुक स्थापित करता है, पुश करता है, और दिखाता है कि 0644 हुक निष्पादित नहीं होता। ./rce_gate_demo.sh --illustrate-gate इसके अतिरिक्त docker exec chmod के माध्यम से +x सेट करता है (एक आउट-ऑफ-बैंड docker-root क्रिया, नहीं हमलावर क्षमता) केवल यह दिखाने के लिए कि gitaly उसे चलाएगा — इस बात पर ज़ोर देते हुए कि गायब लीवर exec बिट है।

मूल कारण और सुधार

पूर्ण विश्लेषण के लिए ANALYSIS.md देखें। संक्षेप में: app/uploaders/gitlab_uploader.rb ने स्टोरेज पथ को केवल before :cache पर मान्य किया; before :store पर मॉडल-व्युत्पन्न file_name (हमलावर-नियंत्रित, अमान्य) को शब्दशः लिखा गया। सुधार before :store, :protect_from_path_traversal! जोड़ता है।

फ़ाइलें

root@kitploit:~
docker-compose.yml   vuln (19.2.1) + patched (19.2.2) GitLab CE
run.sh               one-command harness with deterministic file oracle + PASS/FAIL
provision.rb         lab setup: mint root PAT + create project (NOT part of the exploit)
exploit/poc.py       the PoC sender + --verify-docker oracle
rce_gate_demo.sh     honest exec-bit-gate demonstration