AI કોડ આસિસ્ટન્ટ્સને એક દૂષિત .git/config એન્ટ્રી દ્વારા હાઇજેક કરી શકાય છે જે Git ની core.fsmonitor સુવિધાનો ઉપયોગ કરીને હુમલો કરે છે, જેનાથી અવિશ્વસનીય રિપોઝિટરી ડેવલપરના મશીન પર આસિસ્ટન્ટ ફાઇલો સ્કેન કરે તે જ ક્ષણે કમાન્ડ્સ ચલાવી શકે છે.
આ ખામી કેટલાક લોકપ્રિય એજન્ટ્સમાં જોવા મળી છે—Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build અને Hermes. પેચ કરવામાં આવેલા એજન્ટ્સમાં આ એક્સપ્લોઇટ હવે કામ કરતું નથી; અન્ય એજન્ટ્સ હજુ પણ સંવેદનશીલ છે. આ માટે કોઈ વધારાના ક્લિક્સ કે પ્રોમ્પ્ટ્સની જરૂર નથી, અને દૂષિત કોડ યુઝરના પોતાના અધિકારો સાથે ચાલે છે, AI એજન્ટ દ્વારા આપવામાં આવેલા કોઈપણ સેન્ડબોક્સની બહાર.
હુમલો ડેવલપર સુધી કેવી રીતે પહોંચે છે
- એક કોન્ટ્રાક્ટર પ્રોજેક્ટને ઝિપ કરીને ઈમેલ કરે છે.
- એક ટીમમેટ નેટવર્ક ડ્રાઇવ પર ફોલ્ડર શેર કરે છે.
- કોડબેઝ સાથે USB સ્ટીક આપવામાં આવે છે.
દરેક કિસ્સામાં રિપોઝિટરી એક ડિરેક્ટરી તરીકે આવે છે જેમાં પહેલેથી જ .git ફોલ્ડર હોય છે. જ્યારે AI આસિસ્ટન્ટ ફોલ્ડર ખોલે છે, ત્યારે તે સામાન્ય રીતે કોડનો વ્યુ બનાવવા માટે બેકગ્રાઉન્ડમાં git status ચલાવે છે. Git core.fsmonitor સેટિંગ સાથે તે ઓપરેશનને ઝડપી બનાવે છે, જે Git ને ફાઇલ સિસ્ટમમાં ફેરફારો જોવા માટે બાહ્ય પ્રોગ્રામને કોલ કરવા માટે કહે છે. જો રિપોઝિટરીની .git/config ફાઇલ core.fsmonitor માટે દૂષિત કમાન્ડ વ્યાખ્યાયિત કરે છે, તો Git યુઝરને પૂછ્યા વગર તેને આપમેળે એક્ઝિક્યુટ કરે છે.
કારણ કે કમાન્ડ Git દ્વારા જ લોન્ચ કરવામાં આવે છે, તે યુઝરના અધિકારો મેળવે છે અને AI ટૂલ દ્વારા સેટ કરવામાં આવેલા કોઈપણ સેન્ડબોક્સને બાયપાસ કરે છે. આ એક્સપ્લોઇટ સામાન્ય git clone, git fetch અથવા git pull દરમિયાન સક્રિય થતો નથી; તે ત્યારે જ સક્રિય થાય છે જ્યારે રિપોઝિટરી તેના .git મેટાડેટા સાથે અનપેક કરવામાં આવે છે.
આ સમસ્યા શા માટે મહત્વની છે
ડેવલપર્સ કમ્પ્લીશન સૂચવવા માટે, કોડ રિફેક્ટર કરવા માટે અથવા આખા મોડ્યુલ્સ જનરેટ કરવા માટે વધુને વધુ AI આસિસ્ટન્ટ્સ પર આધાર રાખે છે. તે ટૂલ્સને પ્રોજેક્ટના ફાઇલ ટ્રીના ઝડપી સ્નેપશોટની જરૂર હોય છે, તેથી તેઓ સાયલન્ટલી Git કમાન્ડ્સનો ઉપયોગ કરે છે. જો કોઈ દૂષિત રિપોઝિટરી તે સમયે કોડ એક્ઝિક્યુટ કરી શકે છે, તો હુમલાખોર કોઈપણ દેખીતી ચેતવણી વિના ડેવલપરના વર્કસ્ટેશન પર કબજો મેળવી શકે છે. સંભવિત પેલોડ ક્રેડેન્શિયલ ચોરીથી લઈને પર્સિસ્ટન્ટ બેકડોર ઇન્સ્ટોલ કરવા સુધીનું હોઈ શકે છે, અને તે બધું ત્યારે થાય છે જ્યારે યુઝર માને છે કે તેઓ માત્ર 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 સેટ કરવાથી તમને રક્ષણ મળતું નથી. લોકલ રિપોઝિટરી સેટિંગ્સ હંમેશા ગ્લોબલ સેટિંગ્સ પર ઓવરરાઈડ કરે છે, તેથી દૂષિત રિપોઝિટરી સરળતાથી ગ્લોબલ નિયમને અવગણી શકે છે.
વર્તમાન પેચ લેન્ડસ્કેપ
- Claude Code – પેચ કરવામાં આવ્યો (fsmonitor)
- Cursor – પેચ કરવામાં આવ્યો
- OpenAI Codex – પેચ કરવામાં આવ્યો
- Goose – પેચ કરવામાં આવ્યો
- Qwen Code – અનપેચ્ડ
- Grok Build – અનપેચ્ડ
- Hermes – અનપેચ્ડ
અનપેચ્ડ એજન્ટ્સનો ઉપયોગ કરતા ડેવલપર્સે કોઈપણ આવતી રિપોઝિટરીને સંભવિત રીતે જોખમી માનવી જોઈએ જ્યાં સુધી તેઓ ટૂલ્સ બદલી ન નાખે અથવા કડક લોકલ Git પોલિસી લાગુ ન કરે.
Git સમુદાય તરફથી વિરોધ પક્ષનો મુદ્દો
Git ની core.fsmonitor એ એક કાયદેસરની પર્ફોર્મન્સ સુવિધા છે, બગ નથી. મેન્ટેનર્સ દલીલ કરે છે કે Git કમાન્ડ્સ બોલાવતા પહેલા રિપોઝિટરી સામગ્રી ચકાસવાની જવાબદારી કોલર્સની છે. આ સુવિધાને ગ્લોબલી ડિસેબલ કરવી એ એક સરળ ઉપાય છે, પરંતુ નોંધ્યા મુજબ, લોકલ ઓવરરાઈડ્સ તે સુરક્ષાને નબળી પાડી શકે છે. હવે વ્યાપક ચર્ચા એ વાત પર કેન્દ્રિત છે કે શું AI આસિસ્ટન્ટ્સ તમામ બાહ્ય Git ઇન્વોકેશનને સેન્ડબોક્સમાં રાખવા જોઈએ અથવા કસ્ટમ fsmonitor હૂક્સ ધરાવતી રિપોઝિટરીઝને પ્રોસેસ કરવાનો ઇનકાર કરવો જોઈએ.
આગળ શું જોવું
- અનપેચ્ડ AI એજન્ટ્સ તરફથી અપડેટ્સ—ખાસ કરીને Git કોલ્સના સેન્ડબોક્સિંગ વિશેના કોઈપણ નિવેદનો.
- અવિશ્વસનીય ડિરેક્ટરીઓ માટે Git ના
core.fsmonitorના ડિફોલ્ટ હેન્ડલિંગમાં સંભવિત ફેરફારો. - થર્ડ-પાર્ટી ટૂલ્સ જે આસિસ્ટન્ટ સુધી પહોંચતા પહેલા રિપોઝિટરીની
.git/configને સેનિટાઇઝ કરી શકે છે.
મુખ્ય વાત (Takeaway)
એક છુપાયેલી કોન્ફિગ ફાઇલમાં રહેલી એક સિંગલ લાઇન AI-સંચાલિત સુવિધાને રિમોટ-કોડ-એક્ઝિક્યુશન વેક્ટરમાં બદલી શકે છે. જ્યાં સુધી સંવેદનશીલ એજન્ટ્સ ઠીક ન થાય ત્યાં સુધી, સૌથી સુરક્ષિત પદ્ધતિ એ છે કે સ્ટાન્ડર્ડ ક્લોન વર્કફ્લોની બહાર આવતી દરેક રિપોઝિટરીનું ઓડિટ કરવું અને AI આસિસ્ટન્ટને કોડ અડવા દેતા પહેલા કોઈપણ core.fsmonitor અથવા સમાન હૂક્સ દૂર કરવા.
