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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
tanstack-compromise-checker — TanStack npm सप्लाई चेन हमले के संकेतकों (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx) का पता लगाने के लिए शेल स्क्रिप्ट | Kitploit
उपकरण/GitHubGitHub/fabriziosalmi/tanstack-compromise-checker
समझौता संकेतक (IOC) प्रबंधनभेद्यता स्कैनरकंटेनर सुरक्षाफोरेंसिकमालवेयर विश्लेषणDevSecOpsसीक्रेट डिटेक्शनखतरा खुफियाआपूर्ति श्रृंखला सुरक्षा

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
घटना प्रतिक्रिया
GitHubfabriziosalmi/tanstack-compromise-checker

tanstack-compromise-checker

TanStack npm सप्लाई चेन हमले के संकेतकों (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx) का पता लगाने के लिए शेल स्क्रिप्ट

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

tanstack-compromise-checker

डेवलपर मशीन, रिपॉजिटरी या CI रनर पर TanStack npm सप्लाई-चेन हमले के संकेतकों का पता लगाएँ। Bash स्क्रिप्ट, Docker इमेज और GitHub Action — एक ही इंजन, तीन प्रवेश बिंदु।

CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx

26 मई 2026 को, हमलावरों ने GitHub Actions कैश पॉइज़निंग के माध्यम से 42 @tanstack/* पैकेजों में 84 दुर्भावनापूर्ण संस्करण प्रकाशित किए। पेलोड GitHub टोकन, npm टोकन, AWS/GCP/Azure क्रेडेंशियल्स चुराता है और एक डेड-मैन स्विच डेमॉन स्थापित करता है जो चुराए गए टोकन को रद्द करने पर ~/ को मिटा देता है।

त्वरित आरंभ

वह प्रवेश बिंदु चुनें जो आपकी स्थिति से मेल खाता हो।

macOS / Linux / WSL2 / Git Bash

root@kitploit:~
TAG=v1.0.0
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh
curl -fsSLO https://github.com/fabriziosalmi/tanstack-compromise-checker/releases/download/$TAG/check.sh.sha256
sha256sum -c check.sh.sha256
bash check.sh --online

Docker — हर OS पर काम करता है जो Docker चलाता है (Windows सहित)

root@kitploit:~
docker run --rm -v "$PWD":/scan \
  ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  /scan true fail tanstack-findings.json '' GHSA-g7cv-rxg3-hmpx

इमेज मल्टी-आर्क (linux/amd64, linux/arm64) है और GitHub OIDC के माध्यम से हस्ताक्षरित बिल्ड प्रोवेंस के साथ आती है। चलाने से पहले सत्यापित करें:

root@kitploit:~
gh attestation verify \
  oci://ghcr.io/fabriziosalmi/tanstack-compromise-checker:v1.0.0 \
  --repo fabriziosalmi/tanstack-compromise-checker

GitHub Action — CI में समझौता किए गए निर्भरताओं को ब्लॉक करें

root@kitploit:~
permissions: {}

jobs:
  check:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v6
        with:
          persist-credentials: false
      - uses: fabriziosalmi/tanstack-compromise-checker@v1
        with:
          scan-dir: .
          online: 'true'
          fail-on: fail

एक पूरा हार्डन्ड वर्कफ़्लो .github/workflows/tanstack-check.yml पर उपलब्ध है और यह वही वर्कफ़्लो है जो यह रिपॉजिटरी स्वयं के विरुद्ध चलाती है।

स्क्रिप्ट क्या जाँचती है

--online के साथ, स्क्रिप्ट रनटाइम पर GHSA सलाहकार भी लाती है ताकि पहचान कवरेज संस्करणों की हार्ड-कोडित सूची के बजाय सलाहकार की लाइव स्थिति को ट्रैक करे।

प्रभावित परिवार: @tanstack/router, @tanstack/react-router, @tanstack/history, @tanstack/start, @tanstack/eslint-plugin-router, और संबंधित पैकेज।

स्वच्छ परिवार (प्रभावित नहीं): @tanstack/react-query, @tanstack/react-table, @tanstack/react-virtual, @tanstack/form, @tanstack/store।

उपयोग

root@kitploit:~
# त्वरित जाँच (वर्तमान उपयोगकर्ता का होम)
bash check.sh

# ऑनलाइन मोड: GHSA सलाहकार और npm रजिस्ट्री प्रकाशन-समय क्वेरी करें
bash check.sh --online

# एक विशिष्ट निर्देशिका स्कैन करें
bash check.sh --scan-dir /path/to/your/repos

# CI/SIEM एकीकरण के लिए JSON आउटपुट
bash check.sh --json > findings.json

# प्रभावित रिपॉजिटरी के लिए पिन कमांड सुझाएँ (ड्राई-रन)
bash check.sh --scan-dir /path/to/repos --fix

# एक विस्तारित ज्ञात-बुरी सूची प्रदान करें
bash check.sh --bad-versions-file ./extra-bad-versions.txt

सभी विकल्प

निकास कोड

कोडअर्थ
0स्वच्छ — स्कैन किए गए दायरे में कोई संकेतक नहीं
1केवल चेतावनियाँ — समीक्षा अनुशंसित
2विफलताएँ — समझौता संकेतक मौजूद
3उपकरण/उपयोग त्रुटि

सुरक्षा स्थिति

यह रिपॉजिटरी उसी हमला वर्ग के विरुद्ध आत्मरक्षा करती है जिसका वह पता लगाती है। ठोस रूप से:

  • प्रत्येक GitHub Action uses: 40-अक्षर कमिट SHA पर पिन किया गया है, न कि फ्लोटिंग टैग पर।
  • Docker बेस इमेज एक अपरिवर्तनीय मल्टी-आर्क मैनिफेस्ट डाइजेस्ट पर पिन की गई है।
  • प्रत्येक वर्कफ़्लो शीर्ष स्तर पर permissions: {} घोषित करता है; जॉब्स केवल वही अनुदान देते हैं जो उन्हें चाहिए।
  • actions/checkout को persist-credentials: false के साथ बुलाया जाता है ताकि $GITHUB_WORKSPACE में कोई प्रमाणित git रिमोट न रहे।
  • step-security/harden-runner प्रत्येक वर्कफ़्लो का पहला चरण है और रनर एग्रेस की निगरानी करता है।
  • OpenSSF Scorecard साप्ताहिक और main पर प्रत्येक पुश पर चलता है; परिणाम SARIF के रूप में अपलोड किए जाते हैं।
  • प्रत्येक रिलीज़ Docker इमेज के लिए एक SLSA बिल्ड प्रोवेंस attestation प्रकाशित करता है। कोई भी इसे gh attestation के साथ ऑफ़लाइन सत्यापित कर सकता है।
  • प्रत्येक रिलीज़ सभी स्थापित करने योग्य कलाकृतियों को कवर करते हुए एक check.sh.sha256 शिप करती है।

पूर्ण नीति SECURITY.md में है।

किसी भी सुरक्षा उपकरण के लिए curl | bash न करें, इस उपकरण सहित। हमेशा डाउनलोड करें, चेकसम सत्यापित करें, निरीक्षण करें, फिर चलाएँ।

नमूना आउटपुट

root@kitploit:~
━━  1 / 8  डेड-मैन स्विच आर्टिफैक्ट
  ✔  कोई डेड-मैन स्विच आर्टिफैक्ट नहीं मिला

━━  2 / 8  स्थायित्व वैक्टर
  ✔  कोई स्थायित्व वैक्टर पता नहीं चला

━━  3 / 8  टोकन / क्रेडेंशियल एक्सपोज़र
  ✔  कोई क्रेडेंशियल एक्सपोज़र पता नहीं चला

━━  4 / 8  नेटवर्क संकेतक
  ✔  वर्तमान में कोई node TCP कनेक्शन स्थापित नहीं है (या कोई अवलोकन योग्य नहीं)

━━  5 / 8  रिपोज स्कैन — package.json + लॉकफ़ाइलें
  ℹ  12 package.json + 8 lockfile(s) मिले
  ✔  किसी भी package.json में कोई समझौता परिवार घोषित नहीं
  ✔  किसी भी लॉकफ़ाइल में कोई समझौता पिन नहीं मिला

━━  6 / 8  स्थापित node_modules — प्रत्यक्ष संस्करण जाँच
  ✔  स्थापित node_modules में कोई समझौता पैकेज नहीं

━━  7 / 8  GitHub Actions हार्डनिंग संकेत
  ✔  (स्कैन किए गए दायरे में) कोई जोखिमपूर्ण GitHub Actions पैटर्न पता नहीं चला

━━  8 / 8  मिनी शाई-हुलुद पेलोड + सहायक IOC
  ✔  कोई मिनी शाई-हुलुद पेलोड / सहायक IOC पता नहीं चला

━━  सारांश
  पास: 8    चेतावनियाँ: 0    विफल: 0
  दायरा : /Users/alice/dev
  ✔  दायरे के भीतर समझौते का कोई संकेतक नहीं: /Users/alice/dev
  नोट: /Users/alice/dev के लिए स्वच्छ परिणाम शेष सिस्टम को प्रमाणित नहीं करता है।

यदि आप समझौता हो गए हैं

डेमॉन को रोकने से पहले अपने GitHub टोकन को रद्द न करें — टोकन रद्द होने के क्षण डेड-मैन स्विच rm -rf ~/ करेगा।

  1. पहले डेमॉन को रोकें:
    • macOS 14+: launchctl bootout gui/$UID ~/Library/LaunchAgents/com.user.gh-token-monitor.plist
    • macOS विरासत: launchctl unload ~/Library/LaunchAgents/com.user.gh-token-monitor.plist
    • Linux: systemctl --user stop gh-token-monitor && systemctl --user disable gh-token-monitor
  2. स्क्रिप्ट हटाएँ: rm -f ~/.local/bin/gh-token-monitor.sh
  3. फिर रद्द करें और घुमाएँ: GitHub टोकन, npm टोकन, AWS/GCP/Azure क्रेडेंशियल्स, SSH कुंजियाँ, SSH एजेंट।
  4. GitHub ऑडिट लॉग की समीक्षा करें: https://github.com/settings/security-log
  5. ~/.aws/credentials, ~/.kube/config, ~/.config/gh/hosts.yml, ~/.npmrc का निरीक्षण करें।

निर्भरताएँ

bash स्क्रिप्ट को चाहिए:

  • bash 4+
  • jq (अनुशंसित) — package-lock.json पार्सिंग
  • python3 (वैकल्पिक फॉलबैक) — जब jq अनुपस्थित हो तब उपयोग किया जाता है
  • curl — --online के लिए आवश्यक
  • lsof या ss (वैकल्पिक) — नेटवर्क IOC अनुमान

Docker इमेज उपरोक्त सभी को बंडल करती है। इसका उपयोग उन सिस्टमों पर करें जहाँ आप ये उपकरण स्थापित नहीं कर सकते या नहीं करना चाहते।

योगदान

मुद्दे और पुल रिक्वेस्ट का स्वागत है। ध्यान दें कि इस रिपॉजिटरी में CODEOWNERS का उपयोग होता है: सभी PR को मेंटेनर समीक्षा की आवश्यकता होती है।

संदर्भ

  • TanStack आधिकारिक पोस्टमॉर्टम
  • GitHub Advisory GHSA-g7cv-rxg3-hmpx
  • Snyk विश्लेषण
  • Wiz Blog — Mini Shai-Hulud
  • StepSecurity राइटअप
  • Orca Security — 160+ पैकेज

लाइसेंस

MIT.

टूल डाउनलोड करें
#जाँचविवरण
1डेड-मैन स्विच~/.local/bin/gh-token-monitor.sh, LaunchAgents + LaunchDaemons (macOS), systemd यूज़र + सिस्टम यूनिट्स (Linux), चल रही प्रक्रियाएँ
2स्थायित्वशेल rc फ़ाइलें, यूज़र/सिस्टम क्रॉनटैब, /etc/cron.*, XDG ऑटोस्टार्ट, ग्लोबल git core.hooksPath
3क्रेडेंशियल्ससंवेदनशील env vars, ~/.npmrc, ~/.yarnrc.yml, ~/.aws/credentials, ~/.config/gh/hosts.yml, ~/.netrc, ~/.docker/config.json, ~/.kube/config, .env* फ़ाइल गणना
4नेटवर्क IOCचल रही node प्रक्रियाएँ जिनमें स्थापित आउटबाउंड TCP कनेक्शन हैं (अनुमानात्मक, मैन्युअल समीक्षा)
5रिपोज स्कैनpackage.json घोषित निर्भरताएँ + लॉकफ़ाइल पिन किए गए संस्करण (package-lock.json, yarn.lock, pnpm-lock.yaml)
6स्थापितnode_modules/@tanstack/*/package.json ज्ञात-दुर्भावनापूर्ण संस्करण सूची के विरुद्ध जाँचा गया, फिर npm रजिस्ट्री time[<version>] के विरुद्ध जब --online
7एक्शन संकेत.github/workflows/* pull_request_target, अनुपस्थित --ignore-scripts, actions/cache उपयोग के लिए स्कैन किया गया
8मिनी शाई-हुलुद IOCnode_modules में पेलोड फ़ाइलें (router_init.js, tanstack_runner.js), @tanstack/setup optionalDependency, AI-टूल कॉन्फिग छेड़छाड़, स्रोत में C2 डोमेन, हमलावर कमिट लेखक + शाखा पैटर्न, फिरौती-चिह्नित npm टोकन, द्वितीयक वर्म-प्रचारित पैकेज, साथ ही अज्ञात पेलोड आकृतियों के लिए सूचना-स्तरीय अनुमान
फ़्लैगविवरण
--scan-dir DIRस्कैन करने के लिए रूट निर्देशिका (डिफ़ॉल्ट: $HOME)। /, /etc, /usr जैसी सिस्टम निर्देशिकाओं को स्कैन करने से मना करता है।
--onlineGHSA सलाहकार और npm रजिस्ट्री के time[<version>] को क्वेरी करके समझौते की पुष्टि करें। डिफ़ॉल्ट रूप से बंद — ऑप्ट-इन।
--ghsa GHSA-ID--online में उपयोग किए जाने वाले सलाहकार आईडी को ओवरराइड करें (डिफ़ॉल्ट GHSA-g7cv-rxg3-hmpx)।
--attack-window-start ISO, --attack-window-end ISO--online में उपयोग की जाने वाली प्रकाशन-समय विंडो को ओवरराइड करें।
--fixप्रभावित रिपॉजिटरी के लिए अनुशंसित पिन कमांड प्रिंट करें (डिफ़ॉल्ट रूप से ड्राई-रन)।
--apply--fix के साथ: निष्पादन के लिए ऑप्ट-इन। वर्तमान में अभी भी अंधा update अस्वीकार करता है; मैन्युअल पिनिंग आवश्यक है।
--yes, -y--apply के लिए पुष्टि संकेत छोड़ें।
--jsonनिष्कर्षों को stdout पर JSON के रूप में भेजें (--quiet को दर्शाता है)।
--bad-versions-file Fज्ञात-बुरी सूची में प्रविष्टियाँ (pkg@version, प्रति पंक्ति एक) जोड़ें।
--no-colorANSI रंग अक्षम करें।
--quiet, -qप्रति-जाँच आउटपुट दबाएँ, केवल सारांश प्रिंट करें।
-h, --helpसहायता दिखाएँ।