FlawOpen

flawopen.com/Incidents/tensorlake-npm-install-hook-compromise-october-2026

● Tensorlake · CWE-506 · October 8, 2026 · अति गंभीर
सुरक्षा अनुसंधान · FlawOpen

Tensorlake npm 0.5.144: दुर्भावनापूर्ण install hook

Tensorlake AI SDK के दुर्भावनापूर्ण संस्करण में preinstall loader जोड़ा गया। maintainer ने main में सीधे बदलाव की पुष्टि की और publishing को सख्त किया; GitHub malware advisory के अनुसार जहाँ यह चला, उस host को compromised मानें। शोधकर्ता loader के तरीके को ChainDrop/Shai-Hulud परिवार से जोड़ते हैं; GitHub advisory इस attribution की पुष्टि नहीं करती।[1], [2], [3], [4], [5]

💡 आसान भाषा में (ELI5)

इस पैकेज को इंस्टॉल करना ऐसे उपकरण को बिजली से जोड़ने जैसा था जो जुड़ते ही चलने लगता है; बटन दबाने या उसका उपयोग करने की ज़रूरत नहीं थी। npm ने SDK import होने से पहले, इंस्टॉल करने वाली प्रक्रिया की permissions से दुर्भावनापूर्ण preinstall hook चलाया।[3], [6], [1]

इस पेज के मुख्य शब्द

preinstall lifecycle hook
वह script जिसे npm installation के दौरान चला सकता है। Tensorlake 0.5.144 के प्रकाशित manifest में यह hook loader शुरू करता था; SDK import करना आवश्यक नहीं था।[1], [6]
provenance attestation
किसी artifact के स्रोत और build प्रक्रिया का प्रमाण। maintainer के अनुसार दुर्भावनापूर्ण release में npm provenance था; इससे source code सुरक्षित सिद्ध नहीं होता।[2], [3]
install-script tripwire
CI जाँच जो प्रकाशित manifest में install lifecycle scripts घोषित होने पर विफल होती है। घटना के बाद Tensorlake ने इसे npm ci --ignore-scripts के साथ जोड़ा।[3]
मैलवेयर परिवार का attribution
StepSecurity और Socket loader के तरीके को ChainDrop/Shai-Hulud से जोड़ते हैं। GitHub की malware advisory किसी अभियान परिवार का नाम नहीं बताती; इस संबंध को शोधकर्ताओं की attribution के रूप में लिखें।[4], [5], [1]

फ्रेमवर्क मैपिंग

  • इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-506

घटना का समयक्रम (Timeline)

7 अक्टूबर 2026

maintainer की incident response के अनुसार repository-admin account से main में सीधे commits किए गए।[2], [3]

8 अक्टूबर 2026

release workflow ने दुर्भावनापूर्ण tensorlake@0.5.144 प्रकाशित किया; maintainer के अनुसार npm ने बाद में इसे हटा दिया।[1], [2]

8 अक्टूबर 2026

maintainer ने PR #1016 merge की, आखिरी clean commit बहाल किया, install-script controls जोड़े और clean release को 0.5.145 किया।[3], [7]

हमले का चरण-दर-चरण प्रवाह

चरण 1

repository trust को bypass किया गया

maintainer की response PR के अनुसार admin account ने सामान्य pull-request review के बाहर सीधे main में commits किए। फिर उसी repository से release को manually चलाया गया।[2], [3]

चरण 2

package installation के समय code चलाता था

शोधकर्ताओं ने tensorlake@0.5.144 में loader शुरू करने वाला preinstall hook पाया। code ने installer process की permissions लीं; पहले SDK import करना ज़रूरी नहीं था।[1], [4], [5], [6]

चरण 3

host credentials और persistence जोखिम में आए

GitHub malware advisory प्रभावित host को पूरी तरह compromised मानने को कहती है। StepSecurity और Socket ने credential theft और persistence की रिपोर्ट दी, जिसमें token revoke होने पर विनाशकारी प्रतिक्रिया देने वाला monitor भी शामिल है। इन payload विवरणों का श्रेय शोधकर्ताओं को दें; यह न मानें कि हर क्षमता हर host पर चली।[1], [4], [5]

चरण 4

maintainer ने release controls बहाल किए

response ने दुर्भावनापूर्ण commits revert किए, npm ci --ignore-scripts और manifest tripwire जोड़ा, repository और publishing protections सख्त कीं और package को 0.5.145 से बदला। GHSA कोई patched version नहीं देता क्योंकि यह malware दर्ज करता है, सामान्य vulnerable-code range नहीं।[3], [7]

सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन

यह CI comparison maintainer की merged PR #1016 पर आधारित है; इसमें malicious package या exploit नहीं है। tripwire installation से पहले चलता है और published manifests के install hooks को reject करता है; ignore-scripts npm ci को dependency lifecycle scripts चलाने से रोकता है। maintainer ने बताया कि इस setting में tests और SDK build सफल रहे। जिन packages को hooks चाहिए उन्हें असर हो सकता है; npm test जैसे स्पष्ट रूप से चलाए गए commands अपने scripts फिर भी चलाते हैं। आगे के build steps isolate करें और provenance को source review न समझें। यह अंश पूरा उदाहरण नहीं है: maintainer का tripwire घोषित install hooks की जाँच के साथ typescript/lib/ में अनपेक्षित files को भी अस्वीकार करता है।[3], [6]

कमज़ोर कार्यान्वयन
steps:
  - run: npm ci
सुरक्षित और सुदृढ़ फ़िक्स
steps:
  - run: node scripts/check-no-install-scripts.mjs
  - run: npm ci --ignore-scripts

इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट

स्रोत