3 पॉइंट द्वारा GN⁺ 2025-03-16 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • यह एक लोकप्रिय GitHub Action है जिसका उपयोग हर branch में हुए बदलावों को ट्रैक करने के लिए किया जाता है, और समझौता किए गए commit के जरिए CI/CD secrets लीक करने की कोशिश की गई
  • 23,000 Repo प्रभावित हुए, और GitHub ने इस action को हटा दिया है, इसलिए अब इसका उपयोग संभव नहीं है
  • इसे वैकल्पिक action से बदलें और यह जांचें कि public workflow logs में secrets उजागर हुए हो सकते हैं, इसलिए जांच के बाद keys rotate करना अनिवार्य है
  • StepSecurity के Harden-Runner ने इसे खोजा, और security-hardened alternative action step-security/changed-files को मुफ्त में वितरित किया जा रहा है

घटना का सारांश

  • tj-actions/changed-files का उपयोग 23,000 से अधिक repositories में हो रहा था और इससे समझौता किया गया
    • हमलावर ने action code में बदलाव किया और version tags को malicious commit पर re-point कर दिया
    • इसके कारण GitHub Actions build logs में CI/CD secrets प्रिंट हो गए
  • public workflow logs में secrets के उजागर होने की संभावना है
  • Harden-Runner ने unexpected endpoint detect करने के बाद इस समस्या का पता लगाया
  • malicious Python script ने Runner Worker process से secrets dump करवाए
  • सभी tags को एक ही malicious commit hash (0e58ed8671d6b60d0890c21b07f8835ace038e67) पर सेट कर दिया गया

GitHub की प्रतिक्रिया

  • GitHub ने tj-actions/changed-files action को हटा दिया और इसका उपयोग बंद कर दिया
  • आधिकारिक CVE है CVE-2025-30066

रिकवरी के लिए क्या करें

  • 1. StepSecurity द्वारा दिया गया सुरक्षित वैकल्पिक action इस्तेमाल करें

    • tj-actions/changed-files action को step-security/changed-files@v45 से बदलें
  • 2. tj-actions/changed-files के सभी references हटाएँ

    • codebase में tj-actions/changed-files references खोजकर हटाएँ:
      git grep -l "tj-actions/changed-files"  
      
  • 3. GitHub Actions workflow execution logs का audit करें

    • हालिया execution logs में secrets लीक हुए हैं या नहीं, इसकी जांच ज़रूरी है
    • अगर leaked secrets मिलें, तो उन्हें तुरंत rotate (reset) करें
  • 4. GitHub Actions allowlist सेट करें

  • केवल trusted GitHub Actions को run करने के लिए allowlist configure करें:
    • GitHub settings में यह allow configuration उपलब्ध है:
      • Settings → Actions → Allow select actions
  • 5. StepSecurity Harden-Runner configure करें

    • Harden-Runner में network traffic और workflow execution monitoring configure की जा सकती है

अगला चरण

  • GitHub को समस्या report कर दी गई → GitHub issue: #2463
  • tj-actions/changed-files repository हटा दी गई
  • इसे आधिकारिक रूप से CVE-2025-30066 के रूप में दर्ज किया गया
  • StepSecurity Harden-Runner के जरिए ऐसे समान security issues का पता लगाया और रोका जा सकता है
  • security posture को मजबूत करने और real-time monitoring करने के लिए Harden-Runner configure करने की सिफारिश की जाती है

2 टिप्पणियां

 
dl57934 2025-03-16

कल रात यह काम नहीं कर रहा था, लेकिन अब फिर से चल रहा है।

 
GN⁺ 2025-03-16
Hacker News की राय
  • Renovate के लेखक और मेंटेनर ने attack scenario समझाया

    • हमलावर के पास tj-actions/changed-files repository पर write access था
    • हमलावर ने Renovate commit को spoof करके हाल की commit को छिपाया
    • यह spoofing PR को धोखा देने के लिए नहीं, बल्कि सिर्फ भ्रम पैदा करने के लिए थी
    • commit को Unverified दिखाया गया, और ज़्यादातर लोग केवल signed commits को enforce नहीं करते
    • असली Renovate Bot dependencies को update करने के लिए PR प्रस्तावित करता है
    • कुछ लोगों ने auto-merge enable किया था, लेकिन यह default setting नहीं है
    • यह घटना याद दिलाती है कि बहुत से लोग गलत तरीके से मानते हैं कि git tags immutable होते हैं
  • पिछले कुछ वर्षों में third-party dependencies और extensions पर भरोसा घटा है

    • npm package में dependency ज़्यादा हो तो उसे install नहीं करते
    • vscode या chrome extensions install नहीं करते
    • अक्सर malicious code जोड़ दिया जाता है या license बदल दिया जाता है
    • eslint का dependency tree देखकर शक होता है कि क्या हर चीज़ पर भरोसा किया जा सकता है
  • repository फिर से online हो गई और developer ने स्पष्टीकरण दिया

    • attack @tj-actions-bot account के PAT token से हुआ
    • account security मज़बूत की गई और GitHub ने compromised PAT को revoke कर दिया
  • Clickhouse में github_events की जाँच करके attack में इस्तेमाल account की पहचान की गई

    • "2ft2dKo28UazTZ", "mmvojwip" accounts संदिग्ध हैं
  • यह चौंकाने वाला है कि CI/CD चलाने का तरीका GitHub की random repositories को सूचीबद्ध करने जैसा है

    • LLMs की बढ़ोतरी के कारण समस्या और गंभीर हो रही है
    • महत्वपूर्ण काम manually चलाना चाहिए
  • StepSecurity के co-founder ने बताया कि security incident कैसे detect किया गया

    • Harden-Runner ने GitHub Actions workflow के network calls को monitor करके anomaly detect की
  • GitHub Actions का default usage pattern, यानी non-immutable git tags का उपयोग, ही समस्या है

    • SHA-1 hashing algorithm collision पैदा कर सकता है, इसलिए SHA-256 support चाहिए
  • immutable GitHub Actions लाए जाने की योजना है

    • Actions को fork करें या commit hash का उपयोग करें
  • maven-lockfile project ने auto-merged PR के बारे में बताया

    • असली Renovate Bot ने नकली Renovate Bot की commit को auto-merge कर दिया
  • GitHub Actions को dependencies के लिए lockfile इस्तेमाल करना चाहिए

    • Semver notation समस्या के समाधान के लिए अच्छा solution है