AI குறியீடு உதவியாளர்கள் (AI code assistants) ஒரு தீய .git/config உள்ளீடு மூலம் கடத்தப்படலாம். இது Git-இன் core.fsmonitor அம்சத்தைப் பயன்படுத்தி, ஒரு நம்பகத்தன்மையற்ற களஞ்சியத்தை (repository) ஸ்கேன் செய்யும் போதே டெவலப்பரின் கணினியில் கட்டளைகளை இயக்க அனுமதிக்கிறது.

இந்தக் குறைபாடு Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build மற்றும் Hermes போன்ற பல பிரபலமான ஏஜெண்டுகளில் கண்டறியப்பட்டது. திருத்தப்பட்ட (patched) ஏஜெண்டுகளில் இந்தத் தாக்குதல் இனி வேலை செய்யாது; மற்றவை இன்னும் பாதிப்புக்குள்ளாகவே உள்ளன. இதற்கு கூடுதல் கிளிக் அல்லது அனுமதிகள் தேவையில்லை, மேலும் தீய குறியீடு பயனரின் சொந்த அதிகாரங்களுடன் (privileges), AI ஏஜென்ட் வழங்கும் எந்தவொரு சாண்ட்பாக்ஸிற்கும் (sandbox) வெளியேயும் இயங்கும்.

தாக்குதல் எவ்வாறு ஒரு டெவலப்பரைச் சென்றடைகிறது

  • ஒரு ஒப்பந்ததாரர் ஒரு திட்டத்தை (project) ஜிப் செய்து மின்னஞ்சல் செய்கிறார்.
  • ஒரு குழு உறுப்பினர் நெட்வொர்க் டிரைவில் ஒரு கோப்புறையைப் (folder) பகிர்ந்து கொள்கிறார்.
  • ஒரு கோட்பாட்டின் (codebase) உடன் USB ஸ்டிக் வழங்கப்படுகிறது.

ஒவ்வொரு சூழலிலும், அந்தத் களஞ்சியம் ஏற்கனவே ஒரு .git கோப்புறையைக் கொண்ட ஒரு கோப்பகமாக (directory) வருகிறது. ஒரு AI உதவியாளர் அந்தப் கோப்புறையைத் திறக்கும்போது, குறியீட்டைப் பார்க்க பொதுவாகப் பின்னணியில் git status கட்டளையை இயக்கும். Git அந்தச் செயல்பாட்டை core.fsmonitor அமைப்பின் மூலம் வேகப்படுத்துகிறது; இது கோப்பு முறைமையில் (file system) ஏற்படும் மாற்றங்களைக் கண்காணிக்க ஒரு வெளிப்புற நிரலை அழைக்க Git-இடம் கூறுகிறது. ஒருவேளை களஞ்சியத்தின் .git/config கோப்பு core.fsmonitor-க்காக ஒரு தீய கட்டளையை வரையறுத்திருந்தால், Git பயனரிடம் கேட்காமல் அதைத் தானாகவே இயக்கும்.

இந்தக் கட்டளை Git மூலமாகவே தொடங்கப்படுவதால், அது பயனரின் உரிமைகளைப் பெறுகிறது மற்றும் AI கருவி அமைத்துள்ள எந்தவொரு சாண்ட்பாக்ஸையும் (sandbox) தவிர்க்கிறது. இந்தத் தாக்குதல் சாதாரண git clone, git fetch அல்லது git pull ஆகியவற்றின் போது நிகழாது; களஞ்சியத்தின் .git மெட்டாடேட்டா (metadata) ஏற்கனவே இருக்கும் நிலையில் அது அன்பேக் (unpack) செய்யப்படும்போது மட்டுமே இது செயல்படும்.

இந்த விவகாரம் ஏன் முக்கியமானது

டெவலப்பர்கள் குறியீடுகளைப் பூர்த்தி செய்யவும் (completions), குறியீட்டை மறுசீரமைக்கவும் (refactor), அல்லது முழுமையான தொகுதிகளை (modules) உருவாக்கவும் AI உதவியாளர்களைப் பெரிதும் நம்பியிருக்கிறார்கள். அந்தத் கருவிகளுக்குத் திட்டத்தின் கோப்பு மரத்தின் (file tree) விரைவானத் தகவல் தேவைப்படுவதால், அவை Git கட்டளைகளை அமைதியாக இயக்குகின்றன. ஒரு தீய களஞ்சியத்தால் அந்தத் தருணத்தில் குறியீட்டை இயக்க முடிந்தால், ஒரு தாக்குபவர் எந்தவிதமான எச்சரிக்கையும் இன்றி டெவலப்பரின் பணிநிலையத்தில் (workstation) ஊடுருவ முடியும். பயனர் வெறும் AI உதவியுடன் குறியீட்டை "சரிபார்க்கிறார்" என்று நினைக்கும் போதே, கடவுச்சொல் திருட்டு முதல் நிரந்தர பேக்டோர் (backdoor) நிறுவுதல் வரை பல்வேறு பாதிப்புகளை இது ஏற்படுத்தக்கூடும்.

நச்சுத்தன்மை கொண்ட களஞ்சியத்தைக் கண்டறிதல்

ஒரு களஞ்சியத்தை உதவியாளரிடம் கொடுப்பதற்கு முன், இதை இயக்கவும்:

git config --get core.fsmonitor

காலியாக இல்லாத வெளியீடு (non-empty output) என்பது ஒரு நிரல் தானாகவே இயங்குவதற்கு அமைக்கப்பட்டுள்ளது என்பதைக் குறிக்கிறது. விரிவான ஆய்வுக்கு, சந்தேகத்திற்குரிய 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 repository settings) எப்போதும் உலகளாவிய (global) அமைப்புகளை விட மேலோங்கும், எனவே ஒரு தீய களஞ்சியம் உலகளாவிய விதியைப் புறக்கணிக்கலாம்.

தற்போதைய திருத்த நிலை (Patch landscape)

  • Claude Code – திருத்தப்பட்டது (patched) (fsmonitor)
  • Cursor – திருத்தப்பட்டது (patched)
  • OpenAI Codex – திருத்தப்பட்டது (patched)
  • Goose – திருத்தப்பட்டது (patched)
  • Qwen Code – திருத்தப்படவில்லை (unpatched)
  • Grok Build – திருத்தப்படவில்லை (unpatched)
  • Hermes – திருத்தப்படவில்லை (unpatched)

திருத்தப்படாத ஏஜெண்டுகளைப் பயன்படுத்தும் டெவலப்பர்கள், கருவிகளை மாற்றும் வரை அல்லது கடுமையான உள்ளூர் Git கொள்கைகளை அமல்படுத்தும் வரை, வரும் எந்தவொரு களஞ்சியத்தையும் சாத்தியமான ஆபத்தானது என்று கருத வேண்டும்.

Git சமூகத்தின் மறுப்புரை

Git-இன் core.fsmonitor என்பது ஒரு முறையான செயல்திறன் அம்சம் (performance feature), அது ஒரு பிழை (bug) அல்ல. Git கட்டளைகளை அழைப்பதற்கு முன் களஞ்சிய உள்ளடக்கங்களைச் சரிபார்க்க வேண்டிய பொறுப்பு அழைப்பவர்களிடமே உள்ளது என்று பராமரிப்பாளர்கள் வாதிடுகின்றனர். இந்த அம்சத்தை உலகளாவிய ரீதியில் முடக்குவது ஒரு எளியத் தீர்வாகும், ஆனால் குறிப்பிட்டது போல, உள்ளூர் மாற்றங்கள் (local overrides) அந்தப் பாதுகாப்பைச் செயலிழக்கச் செய்யலாம். AI உதவியாளர்கள் அனைத்து வெளிப்புற Git அழைப்புகளையும் சாண்ட்பாக்ஸ் செய்ய வேண்டுமா அல்லது தனிப்பயன் fsmonitor ஹூக்குகளைக் (hooks) கொண்ட களஞ்சியங்களை நிராகரிக்க வேண்டுமா என்பதில் இப்போது விவாதம் மையம் கொண்டுள்ளது.

அடுத்து கவனிக்க வேண்டியவை

  • திருத்தப்படாத AI ஏஜெண்டுகளிலிருந்து வரும் புதுப்பிப்புகள்—குறிப்பாக Git அழைப்புகளைச் சாண்ட்பாக்ஸ் செய்வது குறித்த எந்தவொரு அறிக்கைகளும்.
  • நம்பகத்தன்மையற்ற கோப்பகங்களுக்கான Git-இன் இயல்பான core.fsmonitor கையாளுதலில் ஏற்படக்கூடிய மாற்றங்கள்.
  • ஒரு களஞ்சியத்தை உதவியாளரிடம் கொண்டு சேருவதற்கு முன் அதன் .git/config-ஐச் சுத்திகரிக்கக்கூடிய மூன்றாம் தரப்பு கருவிகள்.

சுருக்கம் (Takeaway)

மறைக்கப்பட்ட ஒரு உள்ளமைவு கோப்பில் (config file) உள்ள ஒரே ஒரு வரி, AI மூலம் கிடைக்கும் வசதியை ஒரு ரிமோட்-கோட்-எக்ஸிகியூஷன் (remote-code-execution) கருவியாக மாற்றக்கூடும். பாதிப்புள்ள ஏஜெண்டுகள் சரிசெய்யப்படும் வரை, வழக்கமான கிளான் (clone) முறையைத் தவிர்த்து வரும் ஒவ்வொரு களஞ்சியத்தையும் ஆய்வு செய்வதும், AI உதவியாளர் குறியீட்டைத் தொடங்குவதற்கு முன் எந்தவொரு core.fsmonitor அல்லது அது போன்ற ஹூக்குகளையும் நீக்குவதும் பாதுகாப்பான நடைமுறையாகும்.