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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-44590 — CVE-2026-44590 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Sherlock के GitHub Actions वर्कफ़्लो में कमांड इंजेक्शन जो pull_request_target के माध्यम से RCE और GITHUB_TOKEN एक्सफ़िल्ट्रेशन सक्षम करता है। | Kitploit
उपकरण/GitHubGitHub/astaruf/cve-2026-44590
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षारेड टीमिंग
GitHubastaruf/cve-2026-44590

CVE-2026-44590

CVE-2026-44590 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Sherlock के GitHub Actions वर्कफ़्लो में कमांड इंजेक्शन जो pull_request_target के माध्यम से RCE और GITHUB_TOKEN एक्सफ़िल्ट्रेशन सक्षम करता है।

रिपॉजिटरी देखें
215 महीने पहलेअभी तक समीक्षित नहीं
वेबसाइट

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

सभी देखें →

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

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

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

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

CVE-2026-44590 - sherlock-project/sherlock CI - pull_request_target इंजेक्शन के माध्यम से RCE → सप्लाई चेन समझौता

खोज एवं रिपोर्ट: Astaruf

पूर्ण विवरण: https://nstsec.com/en/posts/sherlock-rce-pull-request-target-cve-2026-44590/

अपस्ट्रीम सलाह: sherlock-project/sherlock GHSA advisory

NVD प्रविष्टि: https://nvd.nist.gov/vuln/detail/CVE-2026-44590

CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-44590


इस रिपॉजिटरी में CVE-2026-44590 के लिए प्रूफ-ऑफ-कॉन्सेप्ट शामिल है, जो sherlock-project/sherlock के validate_modified_targets.yml GitHub Actions वर्कफ़्लो में एक कमांड इंजेक्शन है। कोई भी GitHub उपयोगकर्ता एक पुल रिक्वेस्ट खोल सकता है जो विशेषाधिकार प्राप्त CI संदर्भ में मनमाना कमांड निष्पादन ट्रिगर करता है, वर्कफ़्लो के GITHUB_TOKEN को बाहर निकालता है, और दुर्भावनापूर्ण PR को स्वतः-अनुमोदित करता है, यह सब बिना किसी मानवीय हस्तक्षेप के।

पूर्ण तकनीकी विवरण (मूल-कारण विश्लेषण, शोषण वॉकथ्रू, प्रभाव चर्चा, और वास्तविक-विश्व परिदृश्यों में हमलावर क्या कर सकता है इस पर एक अध्याय) के लिए ब्लॉग पोस्ट देखें:

nstsec.com/en/posts/sherlock-rce-pull-request-target-cve-2026-44590

यह README विशेष रूप से PoC स्क्रिप्ट पर केंद्रित है: यह क्या करती है, इसे कैसे चलाएं, और क्या उम्मीद करें।

poc.py के बारे में

poc.py एक एकल स्व-निहित Python स्क्रिप्ट है (केवल stdlib) जो पूरी हमले की श्रृंखला को अंत-से-अंत तक स्वचालित करती है:

  • आवश्यकता पड़ने पर sherlock-project/sherlock को फोर्क करती है
  • (वैकल्पिक रूप से) फोर्क के master को प्री-फिक्स कमिट पर वापस ले जाती है ताकि अपस्ट्रीम फिक्स के बाद भी बग को पुन: उत्पन्न किया जा सके
  • एक OAST लिसनर (interactsh-client) स्पॉन करती है
  • एक दुर्भावनापूर्ण PR ब्रांच तैयार करती है और पुश करती है
  • कमजोर वर्कफ़्लो को ट्रिगर करती है
  • OAST कॉलबैक से GITHUB_TOKEN निकालती है (--mode exfil में) और उसे स्पष्ट पाठ में डिकोड करती है
  • चुराए गए टोकन का उपयोग GitHub API के माध्यम से उसी PR को स्वतः-अनुमोदित करने के लिए करती है
  • स्पष्ट अंतिम निर्णय प्रिंट करती है: VULNERABILITY CONFIRMED या FIX VERIFIED
  • अपने बाद सफाई करती है (PoC ब्रांच हटाती है, interactsh-client समाप्त करती है)

ठीक एक मैनुअल चरण आवश्यक है (प्रति फोर्क पहली बार GitHub के "I understand my workflows" बैनर पर क्लिक करना), क्योंकि इसे खारिज करने के लिए कोई सार्वजनिक API मौजूद नहीं है। स्क्रिप्ट इस स्थिति का पता लगाती है और स्पष्ट संकेत के साथ रुक जाती है।

त्वरित प्रारंभ

अपस्ट्रीम फिक्स सत्यापित करें (डिफ़ॉल्ट व्यवहार)

python3 poc.py --fork-owner <your-github-username>

रिपो को फोर्क करती है (यदि आवश्यक हो), अपस्ट्रीम (पैच किया गया master) के साथ सिंक करती है, एक दुर्भावनापूर्ण PR खोलती है, हमले की श्रृंखला चलाती है, और FIX VERIFIED रिपोर्ट करती है क्योंकि पैच किया गया वर्कफ़्लो किसी भी शेल कमांड के चलने से पहले पेलोड को ब्लॉक कर देता है।

मूल कमजोरी को पुन: उत्पन्न करें

python3 poc.py --fork-owner <your-github-username> --vulnerable

ऊपर जैसा ही, लेकिन पहले फोर्क के master को प्री-फिक्स कमिट (271608fb) पर वापस ले जाता है। अपेक्षित निर्णय: VULNERABILITY CONFIRMED।

पूर्ण प्रभाव प्रदर्शित करें (टोकन एक्सफिल्ट्रेशन + PR स्वतः-अनुमोदन)

python3 poc.py --fork-owner <your-github-username> --vulnerable --mode exfil

एक्सफिल पेलोड git config --list को OAST पर डंप करता है और वर्कफ़्लो (और इस प्रकार GITHUB_TOKEN) को जीवित रखने के लिए 180 सेकंड के लिए सोता है। जब वर्कफ़्लो सो रहा होता है, स्क्रिप्ट OAST लॉग से टोकन निकालती है, उसे डिकोड करती है, और तुरंत PR को अनुमोदित करने के लिए GitHub API को कॉल करती है। PR अंततः github-actions[bot] द्वारा अनुमोदित हो जाता है।

आवश्यकताएँ

  • Python 3.8+ (कोई तृतीय-पक्ष निर्भरता नहीं, केवल stdlib)
  • gh (GitHub CLI), प्रमाणित:
    gh auth login
    
  • git
  • interactsh-client (वैकल्पिक लेकिन अनुशंसित)। स्थापित होने पर, स्क्रिप्ट इसे स्वतः स्पॉन करती है और स्क्रिप्ट के भीतर कॉलबैक सत्यापित करती है:
    go install github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest
    
    यदि आप अपना स्वयं का OAST एंडपॉइंट (Burp Collaborator, वेब UI के माध्यम से oast.fun, requestbin, आदि) उपयोग करना पसंद करते हैं, तो इसे --oast-url के साथ पास करें और स्वतः-सत्यापन चरण छोड़ दिया जाएगा।

स्क्रिप्ट को पहले से फोर्क मौजूद होने की आवश्यकता नहीं है, यह स्वचालित रूप से एक बना लेती है।

मोड

--mode harmless (डिफ़ॉल्ट)

पेलोड एक स्थिर पुष्टिकरण स्ट्रिंग के साथ एक एकल curl POST है। कोई रहस्य नहीं पढ़ा जाता, कोई API कॉल नहीं किया जाता, एकमात्र दुष्प्रभाव OAST कॉलबैक है। किसी भी क्रेडेंशियल को उजागर किए बिना कमजोरी की पुष्टि करने के लिए इसका उपयोग करें।

--mode exfil

पेलोड git config --list (जिसमें http.https://github.com/.extraheader के अंतर्गत base64-एन्कोडेड GITHUB_TOKEN होता है) को OAST पर डंप करता है, फिर 180 सेकंड के लिए सोता है। फिर स्क्रिप्ट:

  1. डंप आने तक OAST लॉग को पोल करती है।
  2. रेगेक्स के साथ base64 ब्लॉब निकालती है।
  3. इसे डिकोड करती है और क्रेडेंशियल को स्पष्ट पाठ में प्रिंट करती है: x-access-token:ghs_XXXXXXXX...।
  4. x-access-token: उपसर्ग हटाती है और मानक अनुमोदन पेलोड ({"event":"APPROVE","body":"All checks passed. LGTM!"}) के साथ POST /repos/<fork>/pulls/<n>/reviews कॉल करने के लिए कच्चे टोकन का उपयोग करती है।
  5. PR वैध CI स्वचालन से अप्रभेद्य, github-actions[bot] द्वारा अनुमोदित के रूप में दिखाई देता है।

एक बार अनुमोदन दर्ज हो जाने के बाद, स्क्रिप्ट वर्कफ़्लो के शेष 180-सेकंड के सोने को छोड़ देती है, क्योंकि हमले की श्रृंखला पूरी हो चुकी है और रनर के टाइम आउट होने की प्रतीक्षा करने से कुछ नहीं जुड़ता।

विकल्प

फ़्लैगविवरण
--fork-owner <user>आवश्यक। GitHub उपयोगकर्ता नाम जो फोर्क का मालिक है (या होगा)
--fork-name <name>फोर्क रिपॉजिटरी नाम (डिफ़ॉल्ट: sherlock)
--oast-url <url>कॉलबैक प्राप्त करने वाला OAST एंडपॉइंट। छोड़े जाने पर, स्क्रिप्ट स्वतः interactsh-client स्पॉन करती है और स्क्रिप्ट-में निर्णय चलाती है
--mode harmless|exfilपेलोड प्रकार (डिफ़ॉल्ट: harmless)
--vulnerableचलाने से पहले फोर्क के master को प्री-फिक्स कमिट (271608fb) पर बलपूर्वक रीसेट करें। --no-sync निहित करता है
--no-syncफोर्क को अपस्ट्रीम के साथ सिंक करना छोड़ें (पिन किए गए कमिट का परीक्षण करते समय उपयोगी)
--base-branch <name>फोर्क पर PR लक्ष्य ब्रांच (डिफ़ॉल्ट: master)
--keep-branchपूरा होने के बाद PoC ब्रांच को न हटाएं
--no-pollवर्कफ़्लो रन पोलिंग छोड़ें और PR निर्माण के बाद बाहर निकलें

PR फोर्क को लक्षित क्यों करता है, अपस्ट्रीम रिपॉजिटरी को नहीं

डिज़ाइन के अनुसार, PoC PR को उसी फोर्क के master पर फोर्क की एक ब्रांच से खोलता है। यह सीधे sherlock-project/sherlock को लक्षित नहीं करता। इसके दो कारण हैं।

1. एक्सप्लॉइट के सार्वजनिक प्रकटीकरण से बचना

टूल डाउनलोड करें