AI code assistants inaweza kutekwa na ingizo la .git/config lenye nia mbaya linalotumia kipengele cha Git cha core.fsmonitor, hali inayoruhusu ghala (repository) lisiloaminika kuendesha amri kwenye mashine ya msimboji (developer) mara tu msaidizi anapochanganua faili hizo.
Udhaifu huu ulionekana katika misaidizi kadhaa maarufu—Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build na Hermes. Katika misaidizi waliorekebishwa, udhaifu huu haufanyi kazi tena; mengine yanabaki kuwa hatarini. Hakuna bonyezo au maelekezo ya ziada yanayohitajika, na msimbo wenye nia mbaya huendesha kwa kutumia haki za mtumiaji mwenyewe, nje ya sanduku lolote la usalama (sandbox) ambalo msaidizi wa AI anaweza kutoa.
Jinsi shambulio linavyomfikia msimboji
- Mkandarasi anafunga mradi katika faili la zip na kuutuma kwa barua pepe.
- Mwanachama wa timu anashiriki folda kwenye diski ya mtandao.
- Kichujio cha USB (USB stick) kinatolewa kikiwa na msimbo wa programu (codebase).
Katika kila hali, ghala hilo hufika kama direktori ambayo tayari ina folda ya .git. Msaidizi wa AI anapofungua folda hiyo, kwa kawaida huendesha git status kwa nyuma ili kujenga muonekano wa msimbo. Git huongeza kasi ya operesheni hiyo kwa kutumia mpangilio wa core.fsmonitor, ambao huambia Git kuita programu ya nje ili kuangalia mabadiliko katika mfumo wa faili. Ikiwa faili ya .git/config ya ghala hiyo imefafanua amri yenye nia mbaya kwa ajili ya core.fsmonitor, Git huitekeleza kiotomatiki, bila kumshauri mtumiaji.
Kwa sababu amri hiyo huanzishwa na Git yenyewe, hupewa haki za mtumiaji na kuepuka sanduku lolote la usalama (sandbox) ambalo zana ya AI inaweza kuwa imeandaa. Udhaifu huu haufanyi kazi wakati wa git clone, git fetch au git pull ya kawaida; huamshwa tu wakati ghala linapofunguliwa likiwa na metadata ya .git tayari.
Kwa nini suala hili ni muhimu
Wasimbuaji wanategemea zaidi misaidizi ya AI kupendekeza ukamilishaji, kurekebisha msimbo (refactor), au kutengeneza moduli nzima. Zana hizo zinahitaji picha ya haraka ya mti wa faili wa mradi, hivyo huita amri za Git kimyakimya. Ikiwa ghala lenye nia mbaya linaweza kutekeleza msimbo wakati huo, mshambuliaji anapata nafasi ya kuingilia kwenye kituo cha kazi cha msimboji bila onyo lolote linaloonekana. Athari zinazoweza kutokea zinatofautiana kuanzia wizi wa taarifa za siri hadi kuweka milango ya nyuma (backdoors) isiyofutika, huku mtumiaji akiamini kuwa anachunguza tu msimbo kwa msaada wa AI.
Kutambua ghala (repo) lililoingiliwa
Kabla ya kumpatia msaidizi ghala (repository), endesha:
git config --get core.fsmonitor
Matokeo yasiyo tupu yanamaanisha programu imewekwa ili iendeshewe kiotomatiki. Kwa uchunguzi mpana zaidi, orodhesha mipangilio yoyote ya Git inayotiliwa shaka:
git config --local --list | grep -Ei 'fsmonitor|hooksPath|sshCommand|pager|editor|filter\.'
Ukiona ingizo uliloliongeza, lifute kwa:
git config --local --unset core.fsmonitor
Zingatia kwamba kuweka git config --global core.fsmonitor false hakukulindi. Mipangilio ya ghala ya ndani (local) kila wakati inashinda mipangilio ya jumla (global), hivyo ghala lenye nia mbaya linaweza kupuuzia tu sheria ya jumla.
Hali ya sasa ya marekebisho (patches)
- Claude Code – imefanyiwa marekebisho (fsmonitor)
- Cursor – imefanyiwa marekebisho
- OpenAI Codex – imefanyiwa marekebisho
- Goose – imefanyiwa marekebisho
- Qwen Code – haijafanyiwa marekebisho
- Grok Build – haijafanyiwa marekebisho
- Hermes – haijafanyiwa marekebisho
Wasimbuaji wanaotumia misaidizi isiyofanyiwa marekebisho wanapaswa kuchukulia ghala lolote linalokuja kama hatari hadi watakapobadilisha zana au kusimamia sera kali zaidi za Git za ndani.
Hoja kinyume kutoka kwa jamii ya Git
core.fsmonitor ya Git ni kipengele halali cha utendaji, si hitilafu (bug). Wadhibiti wanahoji kuwa jukumu liko kwa wanaotumia amri hizo kuhakiki maudhui ya ghala kabla ya kuita amri za Git. Kuzima kipengele hicho kwa ujumla ni njia rahisi ya kuzuia, lakini kama ilivyoelezwa, mipangilio ya ndani inaweza kuvuruga ulinzi huo. Majadiliano mapana sasa yanajikita katika ikiwa misaidizi ya AI inapaswa kuweka sanduku la usalama (sandbox) kwa wito wote wa nje wa Git au kukataa kuchakata ghala zenye 'hooks' za fsmonitor za kipekee.
Nini cha kufuatilia baadaye
- Sasisho kutoka kwa misaidizi ya AI isiyofanyiwa marekebisho—hasa maelezo yoyote kuhusu sandboxing ya wito wa Git.
- Mabadiliko yanayoweza kutokea katika ushughulikiaji wa kawaida wa Git wa
core.fsmonitorkwa maderektori yasiyoaminika. - Zana za upande wa tatu zinazoweza kusafisha
.git/configya ghala kabla haijafika kwa m
