AI ਕੋਡ ਅਸਿਸਟੈਂਟਸ ਨੂੰ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ .git/config ਐਂਟਰੀ ਰਾਹੀਂ ਹਾਈਜੈਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਜੋ Git ਦੇ core.fsmonitor ਫੀਚਰ ਦਾ ਫਾਇਦਾ ਉਠਾਉਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਇੱਕ ਅਣਭਰੋਸੇਯੋਗ ਰੈਪੋਜ਼ੀਟਰੀ (untrusted repository) ਡਿਵੈਲਪਰ ਦੀ ਮਸ਼ੀਨ 'ਤੇ ਉਸੇ ਪਲ ਕਮਾਂਡਾਂ ਚਲਾ ਸਕਦੀ ਹੈ ਜਦੋਂ ਅਸਿਸਟੈਂਟ ਫਾਈਲਾਂ ਨੂੰ ਸਕੈਨ ਕਰਦਾ ਹੈ।

ਇਹ ਖਾਮੀ ਕਈ ਪ੍ਰਸਿੱਧ ਏਜੰਟਾਂ—Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build ਅਤੇ Hermes ਵਿੱਚ ਸਾਹਮਣੇ ਆਈ ਹੈ। ਪੈਚ ਕੀਤੇ ਗਏ ਏਜੰਟਾਂ ਵਿੱਚ ਇਹ ਐਕਸਪਲੋਇਟ (exploit) ਹੁਣ ਕੰਮ ਨਹੀਂ ਕਰਦਾ; ਦੂਜੇ ਅਜੇ ਵੀ ਖਤਰੇ ਵਿੱਚ ਹਨ। ਇਸ ਲਈ ਕਿਸੇ ਵਾਧੂ ਕਲਿੱਕ ਜਾਂ ਪ੍ਰੋਂਪਟ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ, ਅਤੇ ਮਾਲੀਸ਼ੀਅਸ ਕੋਡ ਯੂਜ਼ਰ ਦੇ ਆਪਣੇ ਅਧਿਕਾਰਾਂ (privileges) ਨਾਲ ਚੱਲਦਾ ਹੈ, ਉਹਨਾਂ ਸੈਂਡਬਾਕਸ (sandbox) ਤੋਂ ਬਾਹਰ ਜੋ ਕੋਈ AI ਏਜੰਟ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ।

ਹਮਲਾ ਡਿਵੈਲਪਰ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਦਾ ਹੈ

  • ਇੱਕ ਕੰਟਰੈਕਟਰ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਜ਼ਿਪ (zip) ਕਰਕੇ ਈਮੇਲ ਰਾਹੀਂ ਭੇਜਦਾ ਹੈ।
  • ਇੱਕ ਸਾਥੀ ਨੈੱਟਵਰਕ ਡਰਾਈਵ 'ਤੇ ਫੋਲਡਰ ਸਾਂਝਾ ਕਰਦਾ ਹੈ।
  • ਕੋਡਬੇਸ (codebase) ਦੇ ਨਾਲ ਇੱਕ USB ਸਟਿੱਕ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ।

ਹਰੇਕ ਮਾਮਲੇ ਵਿੱਚ, ਰੈਪੋਜ਼ੀਟਰੀ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਦੇ ਰੂਪ ਵਿੱਚ ਆਉਂਦੀ ਹੈ ਜਿਸ ਵਿੱਚ ਪਹਿਲਾਂ ਹੀ ਇੱਕ .git ਫੋਲਡਰ ਮੌਜੂਦ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਇੱਕ AI ਅਸਿਸਟੈਂਟ ਫੋਲਡਰ ਖੋਲ੍ਹਦਾ ਹੈ, ਤਾਂ ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਕੋਡ ਦਾ ਵਿਊ (view) ਬਣਾਉਣ ਲਈ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ git status ਚਲਾਉਂਦਾ ਹੈ। Git ਉਸ ਕਾਰਜ ਨੂੰ core.fsmonitor ਸੈਟਿੰਗ ਨਾਲ ਤੇਜ਼ ਕਰਦਾ ਹੈ, ਜੋ Git ਨੂੰ ਫਾਈਲ ਸਿਸਟਮ ਵਿੱਚ ਬਦਲਾਅ ਦੇਖਣ ਲਈ ਇੱਕ ਬਾਹਰੀ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ ਕਹਿੰਦਾ ਹੈ। ਜੇਕਰ ਰੈਪੋਜ਼ੀਟਰੀ ਦੀ .git/config ਫਾਈਲ core.fsmonitor ਲਈ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ ਕਮਾਂਡ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਹੈ, ਤਾਂ Git ਯੂਜ਼ਰ ਦੀ ਸਲਾਹ ਲਏ ਬਿਨਾਂ ਇਸਨੂੰ ਆਪਣੇ ਆਪ ਚਲਾ ਦਿੰਦਾ ਹੈ।

ਕਿਉਂਕਿ ਕਮਾਂਡ ਖੁਦ Git ਦੁਆਰਾ ਲਾਂਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਸ ਲਈ ਇਹ ਯੂਜ਼ਰ ਦੇ ਅਧਿਕਾਰਾਂ ਨੂੰ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦੀ ਹੈ ਅਤੇ ਕਿਸੇ ਵੀ ਸੈਂਡਬਾਕਸ ਨੂੰ ਬਾਈਪਾਸ (bypass) ਕਰ ਦਿੰਦੀ ਹੈ ਜੋ AI ਟੂਲ ਨੇ ਸੈੱਟ ਕੀਤਾ ਹੋਵੇਗਾ। ਇਹ ਐਕਸਪਲੋਇਟ ਆਮ git clone, git fetch ਜਾਂ git pull ਦੌਰਾਨ ਕੰਮ ਨਹੀਂ ਕਰਦਾ; ਇਹ ਉਦੋਂ ਹੀ ਐਕਟੀਵੇਟ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਰੈਪੋਜ਼ੀਟਰੀ ਨੂੰ ਅਨਪੈਕ (unpack) ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਉਸ ਵਿੱਚ .git ਮੈਟਾਡਾਟਾ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੁੰਦਾ ਹੈ।

ਇਹ ਮੁੱਦਾ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ

ਡਿਵੈਲਪਰ ਕੰਪਲੀਸ਼ਨਾਂ (completions) ਦਾ ਸੁਝਾਅ ਦੇਣ, ਕੋਡ ਨੂੰ ਰੀਫੈਕਟਰ (refactor) ਕਰਨ, ਜਾਂ ਪੂਰੇ ਮੋਡਿਊਲ ਬਣਾਉਣ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ AI ਅਸਿਸਟੈਂਟਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰ ਰਹੇ ਹਨ। ਉਹਨਾਂ ਟੂਲਜ਼ ਨੂੰ ਪ੍ਰੋਜੈਕਟ ਦੇ ਫਾਈਲ ਟ੍ਰੀ (file tree) ਦੇ ਇੱਕ ਤੇਜ਼ ਸਨੈਪਸ਼ਾਟ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਸ ਲਈ ਉਹ ਚੁੱਪਚਾਪ Git ਕਮਾਂਡਾਂ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਨ। ਜੇਕਰ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ ਰੈਪੋਜ਼ੀਟਰੀ ਉਸ ਸਮੇਂ ਕੋਡ ਚਲਾ ਸਕਦੀ ਹੈ, ਤਾਂ ਇੱਕ ਹਮਲਾਵਰ ਬਿਨਾਂ ਕਿਸੇ ਦਿਖਾਈ ਦੇਣ ਵਾਲੀ ਚੇਤਾਵਨੀ ਦੇ ਡਿਵੈਲਪਰ ਦੇ ਵਰਕਸਟੇਸ਼ਨ 'ਤੇ ਪੈਰ ਜਮਾ ਸਕਦਾ ਹੈ। ਸੰਭਾਵੀ ਨੁਕਸਾਨ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਚੋਰੀ (credential theft) ਤੋਂ ਲੈ ਕੇ ਪਰਸਿਸਟੈਂਟ ਬੈਕਡੋਰ (persistent 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 ਸੈੱਟ ਕਰਨਾ ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਆ ਨਹੀਂ ਦਿੰਦਾ। ਲੋਕਲ ਰੈਪੋਜ਼ੀਟਰੀ ਸੈਟਿੰਗਾਂ ਹਮੇਸ਼ਾ ਗਲੋਬਲ ਸੈਟਿੰਗਾਂ ਨੂੰ ਓਵਰਰਾਈਡ (override) ਕਰਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ ਰੈਪੋਜ਼ੀਟਰੀ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਗਲੋਬਲ ਨਿਯਮ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਸਕਦੀ ਹੈ।

ਮੌਜੂਦਾ ਪੈਚ ਸਥਿਤੀ

  • Claude Code – ਪੈਚ ਕੀਤਾ ਗਿਆ (fsmonitor)
  • Cursor – ਪੈਚ ਕੀਤਾ ਗਿਆ
  • OpenAI Codex – ਪੈਚ ਕੀਤਾ ਗਿਆ
  • Goose – ਪੈਚ ਕੀਤਾ ਗਿਆ
  • Qwen Code – ਅਣ-ਪੈਚ ਕੀਤਾ ਗਿਆ (unpatched)
  • Grok Build – ਅਣ-ਪੈਚ ਕੀਤਾ ਗਿਆ
  • Hermes – ਅਣ-ਪੈਚ ਕੀਤਾ ਗਿਆ

ਅਣ-ਪੈਚ ਕੀਤੇ ਗਏ ਏਜੰਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਕਿਸੇ ਵੀ ਆਉਣ ਵਾਲੀ ਰੈਪੋਜ਼ੀਟਰੀ ਨੂੰ ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਖਤਰਨਾਕ ਮੰਨਣਾ ਚਾਹੀਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਉਹ ਜਾਂ ਤਾਂ ਟੂਲ ਨਹੀਂ ਬਦਲਦੇ ਜਾਂ ਸਖ਼ਤ ਲੋਕਲ Git ਨੀਤੀਆਂ ਲਾਗੂ ਨਹੀਂ ਕਰਦੇ।

Git ਕਮਿਊਨਿਟੀ ਦਾ ਵਿਰੋਧੀ ਪੱਖ

Git ਦਾ core.fsmonitor ਇੱਕ ਜਾਇਜ਼ ਪਰਫਾਰਮੈਂਸ ਫੀਚਰ ਹੈ, ਕੋਈ ਬਗ (bug) ਨਹੀਂ। ਰੱਖ-ਰਖਾਅ ਕਰਨ ਵਾਲੇ (maintainers) ਦਾ ਤਰਕ ਹੈ ਕਿ Git ਕਮਾਂਡਾਂ ਨੂੰ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਰੈਪੋਜ਼ੀਟਰੀ ਦੀ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਕਾਲਰਾਂ ਦੀ ਹੈ। ਫੀਚਰ ਨੂੰ ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਡਿਸੇਬਲ ਕਰਨਾ ਇੱਕ ਸਿੱਧਾ ਉਪਾਅ ਹੈ, ਪਰ ਜਿਵੇਂ ਕਿ ਨੋਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਲੋਕਲ ਓਵਰਰਾਈਡ ਉਸ ਸੁਰੱਖਿਆ ਨੂੰ ਖਤਮ ਕਰ ਸਕਦੇ ਹਨ। ਵਿਆਪਕ ਚਰਚਾ ਹੁਣ ਇਸ ਗੱਲ 'ਤੇ ਕੇਂਦਰਿਤ ਹੈ ਕਿ ਕੀ AI ਅਸਿਸਟੈਂਟਸ ਨੂੰ ਸਾਰੀਆਂ ਬਾਹਰੀ Git ਕਾਲਾਂ ਨੂੰ ਸੈਂਡਬਾਕਸ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਾਂ ਉਹਨਾਂ ਰੈਪੋਜ਼ੀਟਰੀਆਂ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਕਸਟਮ fsmonitor ਹੁੱਕਸ (hooks) ਮੌਜੂਦ ਹਨ।

ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ

  • ਅਣ-ਪੈਚ ਕੀਤੇ ਗਏ AI ਏਜੰਟਾਂ ਤੋਂ ਅਪਡੇਟਸ—ਖਾਸ ਕਰਕੇ Git ਕਾਲਾਂ ਨੂੰ ਸੈਂਡਬਾਕਸ ਕਰਨ ਬਾਰੇ ਕੋਈ ਵੀ ਬਿਆਨ।
  • ਅਣਭਰੋਸੇਯੋਗ ਡਾਇਰੈਕਟਰੀਆਂ ਲਈ Git ਦੇ core.fsmonitor ਦੇ ਡਿਫੌਲਟ ਹੈਂਡਲਿੰਗ ਵਿੱਚ ਸੰਭਾਵੀ ਬਦਲਾਅ।
  • ਤੀਜੀ-ਪਾਰਟੀ ਟੂਲ ਜੋ ਕਿਸੇ ਅਸਿਸਟੈਂਟ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਰੈਪੋਜ਼ੀਟਰੀ ਦੇ .git/config ਨੂੰ ਸਾਫ਼ (sanitize) ਕਰ ਸਕਦੇ ਹਨ।

ਮੁੱਖ ਗੱਲ (Takeaway)

ਇੱਕ ਲੁਕਵੀਂ ਕੌਂਫਿਗ ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਸਿੰਗਲ ਲਾਈਨ AI-ਪਾਵਰਡ ਸਹੂਲਤ ਨੂੰ ਰਿਮੋਟ-ਕੋਡ-ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਵੈਕਟਰ (remote-code-execution vector) ਵਿੱਚ ਬਦਲ ਸਕਦੀ ਹੈ। ਜਦੋਂ ਤੱਕ ਕਮਜ਼ੋਰ ਏਜੰਟਾਂ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ, ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਤਰੀਕਾ ਇਹ ਹੈ ਕਿ ਹਰ ਉਸ ਰੈਪੋਜ਼ੀਟਰੀ ਦੀ ਜਾਂਚ (audit) ਕੀਤੀ ਜਾਵੇ ਜੋ ਸਟੈਂਡਰਡ ਕਲੋਨ ਵਰਕਫਲੋ ਤੋਂ ਬਾਹਰ ਆਉਂਦੀ ਹੈ ਅਤੇ AI ਅਸਿਸਟੈਂਟ ਨੂੰ ਕੋਡ ਨੂੰ ਛੂਹਣ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਕਿਸੇ ਵੀ core.fsmonitor ਜਾਂ ਸਮਾਨ ਹੁੱਕਸ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇ।