• शीर्षक में डाली गई prompt injection ने Cline के AI-आधारित issue triage bot के जरिए कमांड inject किए
  • npm token चुराकर malicious Cline वितरित किया गया, और इसके साथ OpenClaw AI agent बिना अनुमति install किया गया
  • हमलावर ने prompt injection → AI bot द्वारा arbitrary code execution → cache poisoning → credentials चोरी → malicious package deployment की 5-स्टेप चेन बनाई
  • मौजूदा security controls (code review, npm audit, provenance attestations) इस हमले का पता नहीं लगा सके
  • एक security researcher ने 2025 के दिसंबर के अंत में vulnerability खोजकर रिपोर्ट की, लेकिन 5 हफ्तों तक कोई जवाब नहीं मिला, और public disclosure के बाद भी credential rotation की गलती से हमला संभव हो गया
  • AI agent द्वारा AI agent install करने वाला नया supply chain threat pattern सामने आया, जिसने CI/CD environments में AI automation के जोखिम को रेखांकित किया

हमले का अवलोकन

  • 17 फ़रवरी 2026 को npm पर cline@2.3.0 publish किया गया। यह पहले वाले version के समान binary था, लेकिन package.json में "postinstall": "npm install -g openclaw@latest" की एक पंक्ति जोड़ी गई थी
    • इसके कारण 8 घंटों के भीतर Cline को install या update करने वाले लगभग 4,000 डेवलपर सिस्टमों पर OpenClaw अपने-आप install हो गया
  • OpenClaw एक अलग AI agent है, जिसके पास पूरे system का access है, और यह user की सहमति के बिना globally install हुआ

attack chain (Clinejection)

  • स्टेप 1: prompt injection
    • Cline, Anthropic के claude-code-action का उपयोग करने वाले AI issue triage workflow का इस्तेमाल कर रहा था
    • allowed_non_write_users: "*" सेटिंग के कारण कोई भी issue खोलकर bot को trigger कर सकता था
    • 28 जनवरी को हमलावर ने Issue #8904 बनाया, जिसका शीर्षक performance report जैसा दिखता था, लेकिन उसमें “specific package install” करने का निर्देश छिपा हुआ था
  • स्टेप 2: AI bot द्वारा कमांड execution
    • Claude ने इस निर्देश को वैध instruction समझ लिया और attacker के fork (glthub-actions/cline) में npm install चला दिया
    • उस fork के package.json में एक preinstall script शामिल थी, जो remote shell script चलाती थी
  • स्टेप 3: cache poisoning
    • इस script ने GitHub Actions cache को poison करने वाला Cacheract deploy किया
    • 10GB से अधिक data inject करके वैध cache को बाहर कर दिया गया और Cline के nightly release workflow द्वारा उपयोग की जाने वाली cache key को spoof किया गया
  • स्टेप 4: credentials चोरी
    • जब release workflow ने poisoned cache से node_modules restore किया, तब NPM_RELEASE_TOKEN, VSCE_PAT, OVSX_PAT चोरी हो गए
  • स्टेप 5: malicious package deployment
    • हमलावर ने चोरी किए गए npm token से cline@2.3.0 publish किया
    • StepSecurity की monitoring ने 14 मिनट बाद anomaly detect की, और 8 घंटे बाद package हटा दिया गया

response failure और बाद की कार्रवाई

  • security researcher Adnan Khan ने दिसंबर 2025 में vulnerability खोजी और 1 जनवरी 2026 को GitHub Security Advisory के जरिए रिपोर्ट की, लेकिन 5 हफ्तों तक कोई जवाब नहीं मिला
  • Khan ने 9 फ़रवरी को public disclosure किया, जिसके बाद Cline ने 30 मिनट के भीतर AI triage workflow हटाकर patch जारी किया
  • अगले दिन credential rotation शुरू की गई, लेकिन गलत token delete कर दिया गया, और exposed tokens सक्रिय ही रहे
    • 11 फ़रवरी को यह गलती पकड़ी गई और दोबारा rotation की गई, लेकिन तब तक हमलावर credentials चुरा चुका था
    • npm token 6 दिन बाद malicious package publish करने लायक वैध बना रहा
  • Khan हमलावर नहीं था — किसी अलग अज्ञात actor ने Khan के test repository में PoC देखा और उसे Cline पर सीधे weaponize कर दिया

AI द्वारा AI install करने का नया pattern

  • इस घटना में एक AI tool ने दूसरे AI agent को install किया, जिससे supply chain में recursive trust problem पैदा हुई
    • डेवलपर Tool A (Cline) पर भरोसा करता है → Tool A compromise होकर Tool B (OpenClaw) install कर देता है
      → Tool B के पास Tool A से अलग अपनी capabilities होती हैं (shell execution, credential access, persistent daemon install), और यह डेवलपर के मूल trust decision में दिखाई नहीं देता
  • OpenClaw ~/.openclaw/ से credentials पढ़ सकता है, Gateway API के जरिए shell commands चला सकता है, और reboot के बाद भी टिके रहने वाले persistent system daemon के रूप में खुद को install कर सकता है
  • Endor Labs ने इसे proof-of-concept स्तर का payload माना, लेकिन अहम बात खुद mechanism है; अगला payload PoC नहीं भी हो सकता
  • यह ‘Confused Deputy’ problem का supply chain version है, जहां डेवलपर द्वारा दी गई authority किसी तीसरे agent को delegate हो गई
    • डेवलपर Cline को delegated authority देता है, और Cline (compromise के जरिए) वही authority ऐसे पूरी तरह अलग agent को दे देता है, जिसे डेवलपर ने न कभी evaluate किया, न configure किया, न approve

मौजूदा security controls क्यों विफल हुए

  • npm audit: postinstall script जिस package को install करती है, वह वैध और non-malicious package (OpenClaw) है, इसलिए detect करने लायक malware मौजूद नहीं था
  • code review: CLI binary पिछले version से byte-for-byte समान थी; सिर्फ package.json की एक पंक्ति बदली गई थी, इसलिए binary changes पर केंद्रित automated diff checks इसे नहीं पकड़ सके
  • Provenance attestation: उस समय Cline OIDC-आधारित npm provenance इस्तेमाल नहीं कर रहा था, इसलिए compromised token से provenance metadata के बिना deployment संभव था
    • StepSecurity ने इसे anomalous के रूप में flag किया
  • permission prompts: install, npm install के दौरान postinstall hook में हुआ, और कोई भी AI coding tool dependency lifecycle scripts चलने से पहले user confirmation नहीं मांगता, इसलिए छेड़छाड़ दिखाई नहीं दी
  • हमले ने उस gap का फायदा उठाया कि डेवलपर क्या install होने की उम्मीद करता है (Cline का एक specific version) और वास्तव में क्या execute होता है (package के arbitrary lifecycle scripts और transitive installs)

Cline की post-incident प्रतिक्रिया

  • Post Mortem में घोषित सुधारात्मक कदम
    • credentials संभालने वाले workflows में GitHub Actions cache का उपयोग हटाना
    • npm deployment में OIDC provenance attestation लागू करना, long-lived tokens हटाना
    • credential rotation के लिए verification requirements जोड़ना
    • SLA के साथ औपचारिक vulnerability disclosure process बनाना शुरू करना
    • CI/CD infrastructure के लिए third-party security audit शुरू करना
  • केवल OIDC migration से भी यह हमला रोका जा सकता था
    • चोरी किए गए tokens, ऐसे provenance system में package deploy नहीं कर सकते थे, जिसमें किसी specific GitHub Actions workflow से cryptographic proof जरूरी हो

संरचनात्मक समस्या और सबक

  • Clinejection एक supply chain attack होने के साथ-साथ agent security problem भी है
    • हमले का entry point GitHub issue title में natural-language input था, जिसे AI bot ने command की तरह execute कर दिया
  • इसकी संरचना MCP tool poisoning या agent skill registry attack जैसी ही है
    • untrusted input agent तक पहुंचता है → agent कार्रवाई करता है → execution से पहले resulting action का मूल्यांकन करने वाला कोई नहीं होता
  • इस मामले में agent डेवलपर का local coding assistant नहीं, बल्कि हर नए issue पर चलने वाला, shell access और cached credentials रखने वाला automated CI workflow था
    • इसका blast radius एक डेवलपर मशीन नहीं, बल्कि पूरे project की deployment pipeline थी
  • CI/CD में AI agents deploy करने वाली हर टीम (issue triage, code review, automated testing आदि) इसी तरह के exposure में है
    • untrusted input और secret access के संयोजन के जोखिम को समझना होगा
    • agent untrusted inputs (issue, PR, comments) प्रोसेस करता है, जबकि उसके पास secrets (tokens, keys, credentials) का access होता है
  • syscall-level interception इस तरह के हमले को operational layer पर पकड़ सकता है:
    • जब AI triage bot किसी अप्रत्याशित repository में npm install चलाने की कोशिश करे, तब issue title की सामग्री से अलग policy के आधार पर उसका मूल्यांकन किया जाए; और जब lifecycle script बाहरी host पर credentials exfiltrate करने की कोशिश करे, तब egress block किया जाए

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.