.git/configが書き換えられるgitの脆弱性
WindowsとMac OS X用の公式gitクライアントの脆弱性により、.git/configが書き換えられ、任意のコマンドが実行されてしまう問題が修正されたようだ。
ANNOUNCE Git v2.2.1 and updates to older maintenance tracks
何が問題なのかというと、WindowsやMac OS Xのファイルパスの取り扱いで、異なるが同一として扱われる文字があることだ。
たとえば、Windowsでは、".git~1/config"というファイルパスは、".git/config"というファイルパスと同等のものとして扱われる。Mac OS XのHFS+でも、U+200cのような文字が無視されるので、".g/u200cit/config"が、".git/config"と同等に扱われる。
この結果。そのような名前のレポジトリをcloneしたWindowsやMac OS X環境では、.git/configが上書きされ、任意のコマンドを実行可能になってしまう。
GNU/Linuxでcase-sensitiveなファイルシステムを使った環境では、この問題には影響されない。
修正内容として、WindowsとMac OS X環境では、そのような一部の特殊な文字を拒否するようになったということだ。また、GNULinuxのような環境やでも、クロスプラットフォーム対応のため、そのような文字を拒否するオプションが追加されたそうだ。