BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OS XとWindows上のGitとMercurialに致命的な脆弱性

OS XとWindows上のGitとMercurialに致命的な脆弱性

原文(投稿日:2014/12/19)へのリンク

GitとMercurialに影響を与える致命的なセキュリティ脆弱性昨日発表され、これは攻撃者がクライアントマシンで任意のコマンドを実行できるようになる。この脆弱性は、OS X (HFS+)とWindows (NTFS, FAT)で実行しているクライアントでのみ影響がある。 Gitコアチームは、すべての現行バージョンの新しいリリースを発表した

2005年からGitメンテナーのJunio C Hamano氏は、彼のブログで脆弱性を説明した:

Gitは、作業ツリーのルートにある.git/ディレクトリのファイルに、そのリポジトリーの様々なメタ情報を保持しています。システムは、ディレクトリ内のファイル(例えば.git/config)をプロジェクトの履歴にコミットしたり、プロジェクトから作業ツリーにチェックアウトしたりを許可しません。そうでなければ、疑いを持たないユーザーは、無害のように見えるが悪意のあるリポジトリからgit pullを実行して、彼女のリポジトリにあるメタ情報を上書きしてしまうか、彼女が攻撃者からプルされたリポジトリによってインストールされた実行可能なフックを持つことになってしまいます。

この保護は、大文字小文字を区別しないファイルシステムにおいては十分でないことがわかっているとJunio氏は続け、たとえば.gitディレクトリのファイルに対応した.Git/anythingファイルで、攻撃者がコミットして置き換えることができる。 FATかNTFSを使っているすべてのバージョンのWindowsと、OS Xでデフォルトオプションである大文字小文字を区別しないHFS+を使っている場合は脆弱である。

この脆弱性は他の方法でも利用することができる。実際にWindowsとOS Xのどちらも特定のパスコンポーネントは異なる.gitから.gitへ、たとえばWindowsの"git~1/config"とOS Xの.g\u200cit/configは、.git/configとして扱われている。

この脆弱性は、通常のオプションでない大文字小文字を区別しないファイルシステムを使用しない限りは、Linuxシステムには影響がないことがわかっている。

Microsoftは、Visual Studio 2013 RTM, Visual Studio 2013 Update 4, VS 2012 VSIX拡張を含めた彼らのツールにパッチをリリースした。さらに、この脆弱性はクライアントにのみ影響するが、Microsoftは".git\configファイルの受け入れられたpushからサーバーを防ぐパッチをVS OnlineとCodeplexの両方に適用した。"

Appleは、脆弱性を修正するために新しいXcode 6.2 beta3リリースを発表した: "許可されていないパスに関するチェックでは、大文字小文字の区別やUnicode文字について考慮していなかった。この問題は、チェックを追加することで対処することができた。"

最後にGitHubは、"脆弱性が発見される前に彼らのサイトにプッシュされた悪意のあるコンテンツを探す自動スキャンを、github.com上のすべての既存コンテンツに対して実行が完了"し、"github.com上でホストされているリポジトリは、脆弱性を引き起こすすべての悪意のあるツリーを含めることができない"ように実装を変更したと発表した

この記事に星をつける

おすすめ度
スタイル

BT