मई के एक हमले में 84 npm पैकेज दुर्भावनापूर्ण हो गए

अपने एजेंट को प्रोड छूने दें।कुंजियाँ अपने पास रखें।

Sallyport आपके क्रेडेंशियल एक लोकल वॉल्ट में रखता है और एजेंट के बदले API कॉल और SSH कमांड खुद चलाता है। हर रन को आप एक क्लिक या Touch ID से मंज़ूर करते हैं। कोई कमांड नहीं जो सहेजी गई कुंजी दिखाए, और एक्सपोर्ट बटन भी नहीं है।

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon · Apache-2.0 · मुफ़्त · कोई खाता नहीं · कोई क्लाउड नहीं

उन इंजीनियरों के लिए बना जो Claude Code, Cursor या Codex को असली इन्फ़्रास्ट्रक्चर छूने देते हैं

Claude CodeCodexCursorWindsurfClineLangChainCrewAIOpenHandsGooseZed
खुद आज़माएँ

मंज़ूरी वहीं, जहाँ आप पहले से हैं

यह कुंजी हर बार इस्तेमाल पर मंज़ूरी माँगती है। कॉल आपके फ़ैसले का इंतज़ार करता है।

claude · ~/infra

sallyport · http.request

PATCH api.cloudflare.com/client/v4/zones/…/dns_records

कुंजी cloudflare · चिह्नित हर कॉल पर मंज़ूरी

मंज़ूरी का इंतज़ार…

मंज़ूरी ज़रूरी

http.request → api.cloudflare.com

Developer ID Application: Anthropic PBC

claude node zsh

कुंजी:cloudflareहर कॉल पर
कॉल को जाने देने के लिए मंज़ूर करें पर क्लिक करें।या दबाएँ A/D
समस्या

आपका एजेंट अभी आपकी कुंजियाँ पढ़ सकता है

.env में API टोकन, डिस्क पर SSH कुंजियाँ, कॉन्फ़िग फ़ाइलों में OAuth ग्रांट। इन सबको एजेंट और वह हर पैकेज पढ़ सकता है जिसे वह खींचता है, और एक ज़हरीला README इन्हें बाहर ले जाने के लिए काफ़ी है।

सीक्रेट सबके सामने

.env और शेल वेरिएबल में टोकन, डिस्क पर SSH कुंजियाँ, कॉन्फ़िग फ़ाइलों में OAuth टोकन। इन्हें एजेंट, उसकी चाइल्ड प्रोसेस और जो कुछ npm ने आज इंस्टॉल किया, सब पढ़ सकते हैं।

प्रॉम्प्ट इंजेक्शन बन जाता है चोरी

कोई दुर्भावनापूर्ण पेज या README एजेंट से कहता है कि टोकन किसी नई जगह भेज दे, और एजेंट मान जाता है। उसे बनाया ही निर्देश मानने के लिए गया है।

आपको पता चलता है बिल से

बिना गेटवे के इसका कोई रिकॉर्ड नहीं रहता कि एजेंट ने कौन-से कॉल किए, कहाँ भेजे, और उनमें क्या था। चुराई गई कुंजियाँ हफ़्तों बाद सामने आती हैं, किसी और के हिसाब से।

यह कोई कल्पना नहीं

मई 2026

TanStack npm हमला

42 पैकेजों में फैली 84 दुर्भावनापूर्ण वर्ज़न ने इंस्टॉल के वक़्त क्लाउड क्रेडेंशियल, GitHub टोकन और SSH कुंजियाँ बटोरीं, फिर पीड़ितों के अपने पैकेजों के ज़रिए फैल गईं।

2025 का अंत

Shai-Hulud वर्म

समझौता हो चुके npm पैकेजों ने इंस्टॉल पर सीक्रेट चुराए और चुराए गए क्रेडेंशियल से पैकेजों की अगली खेप को संक्रमित किया।

अगस्त 2025

Nx S1ngularity

एक ज़हरीले बिल्ड टूल ने डेवलपर मशीनों को सीक्रेट के लिए स्कैन किया, लोकल AI टूल आज़माए, और लूट को GitHub CLI के ज़रिए बाहर भेज दिया।

तीनों ने कुंजियाँ एनवायरनमेंट वेरिएबल और डिस्क की फ़ाइलों से बटोरीं। Sallyport इस्तेमाल-योग्य कुंजियाँ दोनों से बाहर रखता है।

आपके एजेंट को कुंजियों की ज़रूरत नहीं

एजेंट एक अनुरोध भेजता है: इस API को कॉल करो, उस होस्ट पर यह कमांड चलाओ। Sallyport ऐप के भीतर क्रेडेंशियल जोड़ता है, कॉल चलाता है और नतीजा लौटाता है। कुंजी कभी एजेंट के एनवायरनमेंट में नहीं आती, और एक सील जर्नल दिखाता है कि क्या चला और किसने मंज़ूरी दी।

भरोसे का मॉडल

तयशुदा निर्णय सीढ़ी

हर क्रिया उसी संकलित सीढ़ी पर चढ़ती है। यहाँ न कोई पॉलिसी भाषा है जिसे ग़लत कॉन्फ़िगर किया जा सके, न कोई रूल्स इंजन जो समय के साथ सड़ जाए; एक वैकल्पिक अनुमति-सूची उन कोड पहचानों के लिए सत्र मंज़ूरी को छोड़ सकती है जिन पर आप भरोसा करते हैं।

भरोसे का मॉडल

1

वॉल्ट गेट

वॉल्ट सर्वोपरि है

वॉल्ट लॉक अवस्था में शुरू होता है। Secure Enclave और Touch ID उसके डेटा तक पहुँच को नियंत्रित करते हैं। अनलॉक होने तक Sallyport हर क्रिया अस्वीकार करता है।

2

हर-कॉल कुंजियाँ

चिह्नित कुंजियाँ हर बार पूछती हैं

"हर कॉल पर मंज़ूरी" चिह्नित कुंजी हर इस्तेमाल पर एक क्लिक या Touch ID माँगती है, मंज़ूर हो चुके सत्र के भीतर भी।

3

सत्र गेट

हर एजेंट रन पर एक मंज़ूरी

एक नई एजेंट प्रोसेस अपनी कोड-साइनिंग अथॉरिटी के साथ एक कार्ड दिखाती है। मंज़ूरी तब तक रहती है जब तक प्रोसेस बंद न हो, आप उसे रद्द न करें, या वॉल्ट लॉक न हो जाए।

4

निगरानी

चलाएँ और दर्ज करें

प्रति-सत्र मंज़ूरी बंद होने पर क्रियाएँ सत्र कार्ड के बिना चलती हैं और जर्नल में बनी रहती हैं।

वॉल्ट गेट, हर-कॉल कुंजी, सत्र गेट, निगरानी।

अंदर क्या है

सब कुछ एक हस्ताक्षरित ऐप में आता है

एक हस्ताक्षरित Mac ऐप वॉल्ट, मंज़ूरियाँ और जर्नल रखता है। न कोई खाता बनाना है, न इसके पीछे कोई क्लाउड सेवा है।

पूर्ण वॉल्ट गेट

लॉक रहते हुए Sallyport हर एजेंट क्रिया और स्टेटस को छोड़कर सभी प्रबंधन ऑपरेशन अस्वीकार करता है।

डिस्क पर एन्क्रिप्टेड

वॉल्ट कुंजी नामों, प्रदाताओं, होस्ट बाइंडिंग, SSH इन्वेंटरी, सेटिंग्स और सीक्रेट मानों को एन्क्रिप्ट करता है।

प्रोसेस का स्रोत

हर कार्ड कॉल करने वाले की कोड-साइनिंग अथॉरिटी और पैरेंट चेन दिखाता है, किसी भी अहस्ताक्षरित प्रोसेस समेत।

बदलावों के लिए Touch ID

कॉन्फ़िगरेशन बदलावों के लिए Touch ID ज़रूरी किया जा सकता है। कोई कृत्रिम क्लिक बायोमेट्रिक प्रॉम्प्ट को पूरा नहीं कर सकता।

राइट-ब्लाइंड जर्नल

Sallyport एजेंट रन और हर-कॉल गतिविधि को लिखते समय ही एन्क्रिप्ट करता है, फिर सिफरटेक्स्ट को हैश चेन से जोड़ता है।

SSH जो कमांड देखता है

Sallyport पूरी SSH कमांड देखता है, होस्ट कुंजी जाँचता है और सत्र रिकॉर्डिंग सील करता है। प्राइवेट कुंजी ऐप में ही रहती है।

निगरानी मोड

निगरानी मोड सत्र कार्ड हटा देता है लेकिन वॉल्ट गेट, हर-कॉल मंज़ूरी और जर्नल बनाए रखता है।

कोई रिकवरी नहीं

वॉल्ट में न एक्सपोर्ट है, न रिवील, न रिकवरी कुंजी। इसे खो दें तो सहेजे गए क्रेडेंशियल उनके प्रदाताओं से दोबारा जारी कराएँ।

चैनल

HTTP, SSH और MCP

आपका एजेंट Sallyport से एक सामान्य MCP सर्वर की तरह जुड़ता है। वह जो कुछ करता है, वही सीढ़ी चढ़कर उसी जर्नल में जाता है।

HTTP API

http.request → api.github.com

ऐप HTTPS कॉल करता है और क्रेडेंशियल सिर्फ़ एक्ज़ीक्यूशन के दौरान डालता है। दूसरे होस्ट पर रीडायरेक्ट उसे साथ नहीं ले जाते।

SSH

ssh.exec → deploy@prod-03

एक स्टेटलेस हेल्पर कनेक्शन खोलता है। ऐप SSH हस्ताक्षर संभालता है, होस्ट कुंजियाँ पिन करता है और सत्र रिकॉर्डिंग सील करता है; प्राइवेट कुंजी हेल्पर में नहीं जाती।

MCP सर्वर

github.create_issue

लोकल stdio या रिमोट MCP सर्वरों को उसी गेट से प्रॉक्सी करें। Sallyport OAuth 2.1 टोकन सील करता और रिफ़्रेश करता है।

आँकड़ों में

दाँव पर क्या है

84

एक ही npm हमले में दुर्भावनापूर्ण पैकेज वर्ज़न, जो क्रेडेंशियल का शिकार कर रहे थे

0

खाते, क्लाउड सेवाएँ या टेलीमेट्री: Sallyport पूरी तरह आपके Mac पर चलता है

1 टैप

Touch ID एक चिह्नित कॉल को मंज़ूर करता है; कोई कृत्रिम क्लिक इसकी नकल नहीं कर सकता

~2 मिनट

brew install से लेकर आपके पहले गेटेड कॉल तक

सीमाएँ

Sallyport क्या वादा नहीं करता

सुरक्षा टूल हद से ज़्यादा वादे करना पसंद करते हैं, इसलिए हमने अपनी सीमा लिखकर रखी है।

सीमाएँ

मंज़ूर सत्र फिर भी ग़लत बर्ताव कर सकता है

सत्र मंज़ूरी प्रोसेस को अधिकृत करती है, हर अनुरोध के अर्थ को नहीं। जिन कुंजियों की अलग से जाँच ज़रूरी है, उनके लिए हर-कॉल मंज़ूरी इस्तेमाल करें।

यह आपके रूप में चल रहे नेटिव कोड को नहीं रोक सकता

Sallyport एंटीवायरस नहीं है। आपके यूज़र अधिकारों के साथ चल रहा कोड फिर भी ऐप या ऑपरेटिंग सिस्टम पर हमला कर सकता है।

यह आपके बदले पढ़ नहीं सकता

कार्ड कॉल करने वाले की कोड-साइनिंग अथॉरिटी और प्रोसेस चेन दिखाते हैं। अनुरोध की जाँच फिर भी आपको ही करनी है।

सामान्य प्रश्न

अक्सर पूछे जाने वाले प्रश्न

Sallyport का लाइसेंस कैसा है?
Sallyport डाउनलोड और इस्तेमाल के लिए मुफ़्त है। कोर Apache-2.0 के तहत ओपन सोर्स है। नियोजित एंटरप्राइज़ कॉम्पोनेंट एक व्यावसायिक लाइसेंस के तहत होंगे।
मेरे सीक्रेट कहाँ रहते हैं?
आपके Mac पर एक लोकल वॉल्ट में। Secure Enclave और Touch ID वॉल्ट एन्क्रिप्शन कुंजी तक पहुँच को नियंत्रित करते हैं। Sallyport सीक्रेट मानों और मेटाडेटा को डिस्क पर एन्क्रिप्ट करता है और वॉल्ट डेटा अपलोड नहीं करता।
क्या यह अपने सर्वर से संपर्क करता है?
नहीं। न कोई क्लाउड सेवा है, न खाता, न टेलीमेट्री। Sallyport ऑफ़लाइन काम करता है, सिवाय उन सेवाओं के जिन्हें आप ख़ुद बताते हैं और अपडेट फ़ीड के।
सिस्टम आवश्यकताएँ क्या हैं?
Apple Silicon वाला एक Mac जिस पर macOS 14 या नया चल रहा हो। Intel Mac समर्थित नहीं हैं।
वॉल्ट लॉक रहते हुए क्या होता है?
एजेंट क्रियाएँ रुक जाती हैं। प्रबंधन अनुरोध सिर्फ़ स्टेटस लौटाते हैं; बाक़ी सभी ऑपरेशन अस्वीकार हो जाते हैं। अनलॉक के लिए Touch ID चाहिए, और लॉक करने पर सत्र और लंबित मंज़ूरियाँ साफ़ हो जाती हैं।
क्या यह Claude Code और दूसरे एजेंट के साथ काम करता है?
कोई भी MCP क्लाइंट बंडल किए गए sp mcp शिम का इस्तेमाल करके http.request, ssh.exec और कॉन्फ़िगर किए गए अपस्ट्रीम MCP सर्वरों तक पहुँच सकता है।
क्या एजेंट कभी मेरी कुंजियाँ देख सकता है?
नहीं। कोई कमांड नहीं जो सहेजा गया क्रेडेंशियल दिखाए, और न कोई एक्सपोर्ट या रिकवरी रास्ता। एक ईमानदार चेतावनी: Sallyport सर्वर की प्रतिक्रियाएँ जैसी आती हैं वैसी लौटाता है, इसलिए अगर कोई लक्षित सेवा अपनी प्रतिक्रिया में सीक्रेट वापस भेज दे, तो एजेंट उस प्रतिक्रिया को देख लेता है।
अगर मैं अपने Mac तक पहुँच खो दूँ तो?
कोई रिकवरी कुंजी नहीं है। वॉल्ट दोबारा शुरू करें और क्रेडेंशियल उनके प्रदाताओं से दोबारा जारी कराएँ।

आपका एजेंट आपकी कुंजियों से बस एक प्रॉम्प्ट इंजेक्शन दूर है।

मुफ़्त डाउनलोड। Apple Silicon, macOS 14 या नया। कोई खाता नहीं, कभी नहीं।

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon

Sallyport

Sallyport आपके AI एजेंट के लिए API कॉल और SSH कमांड चलाता है। कुंजियाँ आपके Mac पर एक लोकल वॉल्ट में रहती हैं; आप हर रन को स्वीकृत करते हैं और हर क्रिया एक सीलबंद जर्नल में दर्ज होती है।

© 2026 Sallyport · Apache-2.0 के तहत ओपन सोर्स · Oleg Sotnikov