AI कोड असिस्टंट्सना एका घातक .git/config एन्ट्रीद्वारे हायजॅक केले जाऊ शकते, जी Git च्या core.fsmonitor वैशिष्ट्याचा (feature) फायदा घेते. यामुळे असिस्टंटने फाईल्स स्कॅन करताच, एक अविश्वसनीय (untrusted) रिपॉझिटरी डेव्हलपरच्या मशीनवर कमांड्स रन करू शकते.
ही त्रुटी Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build आणि Hermes यांसारख्या अनेक लोकप्रिय एजंट्समध्ये दिसून आली आहे. ज्या एजंट्सना पॅच (patch) करण्यात आले आहे, तिथे हा एक्सप्लॉइट (exploit) आता काम करत नाही; परंतु इतर एजंट्स अजूनही असुरक्षित आहेत. यासाठी कोणत्याही अतिरिक्त क्लिक किंवा प्रॉम्प्टची आवश्यकता नसते आणि घातक कोड वापरकर्त्याच्या स्वतःच्या विशेषाधिकारांसह (privileges), AI एजंटने दिलेल्या कोणत्याही सँडबॉक्सच्या (sandbox) बाहेर रन होतो.
हल्ला डेव्हलपरपर्यंत कसा पोहोचतो
- एक कॉन्ट्रॅक्टर प्रोजेक्ट झिप करून ईमेल करतो.
- एखादा टीममेट नेटवर्क ड्राइव्हवर फोल्डर शेअर करतो.
- कोडबेससह USB स्टिक दिली जाते.
प्रत्येक परिस्थितीत, रिपॉझिटरी एका अशा डिरेक्टरीच्या स्वरूपात येते ज्यामध्ये आधीच .git फोल्डर असते. जेव्हा AI असिस्टंट फोल्डर उघडतो, तेव्हा तो कोडचे दृश्य (view) तयार करण्यासाठी बॅकग्राउंडमध्ये सहसा git status रन करतो. Git core.fsmonitor सेटिंगचा वापर करून ही प्रक्रिया वेगवान करते, जी Git ला फाईल सिस्टममधील बदलांवर लक्ष ठेवण्यासाठी एखादा बाह्य प्रोग्राम कॉल करण्यास सांगते. जर रिपॉझिटरीच्या .git/config फाईलमध्ये core.fsmonitor साठी एखादी घातक कमांड परिभाषित केलेली असेल, तर Git वापरकर्त्याला विचारल्याशिवाय ती आपोआप कार्यान्वित (execute) करते.
ही कमांड स्वतः Git द्वारे सुरू केली जात असल्याने, ती वापरकर्त्याचे अधिकार (rights) प्राप्त करते आणि AI टूलने तयार केलेल्या कोणत्याही सँडबॉक्सला बायपास करते. हा एक्सप्लॉइट सामान्य git clone, git fetch किंवा git pull दरम्यान सक्रिय होत नाही; तो तेव्हाच सक्रिय होतो जेव्हा रिपॉझिटरी अनपॅक केली जाते आणि त्यामध्ये .git मेटाडेटा आधीच उपस्थित असतो.
ही समस्या का महत्त्वाची आहे
डेव्हलपर्स कोड पूर्ण करण्यासाठी (completions), कोड रिफॅक्टर करण्यासाठी किंवा संपूर्ण मॉड्यूल्स तयार करण्यासाठी अधिकाधिक AI असिस्टंट्सवर अवलंबून आहेत. या टूल्सना प्रोजेक्टच्या फाईल ट्रीचा जलद स्नॅपशॉट हवा असतो, म्हणून ते शांतपणे (silently) Git कमांड्स कॉल करतात. जर एखादी घातक रिपॉझिटरी त्या क्षणी कोड कार्यान्वित करू शकली, तर कोणताही दृश्य इशारा न देता अटॅकर डेव्हलपरच्या वर्कस्टेशनवर ताबा मिळवू शकतो. संभाव्य नुकसान (payload) क्रेडेंशियल चोरीपासून ते कायमस्वरूपी बॅकडोअर (backdoors) स्थापित करण्यापर्यंत असू शकते, आणि हे सर्व घडत असताना वापरकर्त्याला वाटते की ते केवळ AI सहाय्यकासह कोड "तपासत" आहेत.
दूषित (poisoned) रिपॉझिटरी कशी ओळखाल
असिस्टंटकडे रिपॉझिटरी देण्यापूर्वी, हे रन करा:
git config --get core.fsmonitor
जर आउटपुट रिकामे नसेल, तर याचा अर्थ एखादा प्रोग्राम आपोआप रन होण्यासाठी सेट केला आहे. अधिक व्यापक तपासणीसाठी, कोणत्याही संशयास्पद Git सेटिंग्जची यादी करा:
git config --local --list | grep -Ei 'fsmonitor|hooksPath|sshCommand|pager|editor|filter\.'
जर तुम्हाला तुम्ही न जोडलेल्या एन्ट्री आढळल्या, तर त्या खालील कमांडने काढून टाका:
git config --local --unset core.fsmonitor
लक्षात ठेवा की git config --global core.fsmonitor false सेट केल्याने तुमचे संरक्षण होत नाही. स्थानिक (local) रिपॉझिटरी सेटिंग्ज नेहमी ग्लोबल सेटिंग्जवर मात करतात, त्यामुळे घातक रिपॉझिटरी ग्लोबल नियमाकडे सहज दुर्लक्ष करू शकते.
सध्याची पॅच स्थिती (patch landscape)
- Claude Code – पॅच केले आहे (fsmonitor)
- Cursor – पॅच केले आहे
- OpenAI Codex – पॅच केले आहे
- Goose – पॅच केले आहे
- Qwen Code – पॅच केलेले नाही
- Grok Build – पॅच केलेले नाही
- Hermes – पॅच केलेले नाही
जे डेव्हलपर्स पॅच न केलेल्या एजंट्सचा वापर करत आहेत, त्यांनी जोपर्यंत टूल्स बदलत नाहीत किंवा अधिक कडक स्थानिक Git धोरणे लागू करत नाहीत, तोपर्यंत येणाऱ्या कोणत्याही रिपॉझिटरीला संभाव्य धोकादायक मानले पाहिजे.
Git समुदायाचा प्रतिवाद (Counter-point)
Git चे core.fsmonitor हे एक वैध परफॉर्मन्स वैशिष्ट्य आहे, बग नाही. मेंटेनर्सचा असा युक्तिवाद आहे की Git कमांड्स कॉल करण्यापूर्वी रिपॉझिटरीमधील मजकूर तपासण्याची जबाबदारी कॉल करणाऱ्यांची आहे. हे वैशिष्ट्य जागतिक स्तरावर (globally) अक्षम करणे हा एक सोपा उपाय आहे, परंतु नमूद केल्याप्रमाणे, स्थानिक ओव्हरराइड्स (local overrides) त्या संरक्षणाला निष्प्रभ करू शकतात. आता मोठी चर्चा यावर केंद्रित आहे की AI असिस्टंट्सनी सर्व बाह्य Git कॉल सँडबॉक्समध्ये ठेवले पाहिजेत की कस्टम fsmonitor हुक्स असलेल्या रिपॉझिटरीजवर प्रक्रिया करण्यास नकार दिला पाहिजे.
पुढे काय पाहावे
- पॅच न केलेल्या AI एजंट्सकडून येणारे अपडेट्स—विशेषतः Git कॉल सँडबॉक्सिंगबद्दलचे कोणतेही विधान.
- अविश्वसनीय डिरेक्टरीजसाठी
core.fsmonitorच्या Git च्या डीफॉल्ट हाताळणीमध्ये संभाव्य बदल. - असिस्टंटपर्यंत पोहोचण्यापूर्वी रिपॉझिटरीची
.git/configफाईल स्वच्छ (sanitize) करू शकणारी तृतीय-पक्ष (third-party) टूल्स.
निष्कर्ष (Takeaway)
लपविलेल्या कॉन्फिग फाईलमधील एक ओळ AI-आधारित सुविधेला रिमोट-कोड-एक्झिक्यूशन वेक्टरमध्ये बदलू शकते. जोपर्यंत असुरक्षित एजंट्स दुरुस्त केले जात नाहीत, तोपर्यंत प्रत्येक रिपॉझिटरीचे ऑडिट करणे ही सर्वात सुरक्षित पद्धत आहे जी मानक क्लोन वर्कफ्लोच्या बाहेर येते आणि AI असिस्टंटला कोड स्पर्श करण्यापूर्वी त्यातील कोणतेही core.fsmonitor किंवा तत्सम हुक्स काढून टाकणे आवश्यक आहे.
