Gitに深刻な脆弱性、緊急メンテナンスリリースが公開される 39
ストーリー by headless
修正 部門より
修正 部門より
Gitの深刻な脆弱性「CVE-2014-9390」が18日に公表された(Gitのアナウンス、
Git Blameの記事、
GitHubの記事、
窓の杜の記事、
本家/.)。
この脆弱性は大文字と小文字を区別しないローカルファイルシステム上でGitまたは互換クライアントを使用している場合に影響する。攻撃者は「.Git」のような名前のディレクトリ(「.git」を除くすべての大文字小文字の組み合わせが利用可能)を作成してファイルを格納することで、影響を受けるシステムのローカルリポジトリで「.git」ディレクトリ内のファイルを上書きすることや、任意のコマンドを実行することができるという。また、Mac OS XのHFS+ではUnicodeの特定範囲を無視するため、「.g\u200cit」のような名前のディレクトリを使用して攻撃を行うことも可能だ。影響を受けるのは主にWindows版とMac OS X版のクライアントで、大文字と小文字を区別するファイルシステムを使用している限りLinux版のクライアントは影響を受けない。
すでにGitは緊急メンテナンスリリースが公開されており、GitHub for WindowsやGitHub for Mac、Git for Windows、Git OS X installer、JGit、EGit、libgit2なども最新版で修正済みだ。また、MicrosoftがVisual StudioおよびTFS 2013の修正パッチを公開しているほか、AppleもXcode 6.2 beta 3を公開している。影響を受けるシステムのユーザーはもちろんだが、影響を受けないシステムであってもGitサーバーをホストしている場合には更新が強く推奨されている。
この脆弱性は大文字と小文字を区別しないローカルファイルシステム上でGitまたは互換クライアントを使用している場合に影響する。攻撃者は「.Git」のような名前のディレクトリ(「.git」を除くすべての大文字小文字の組み合わせが利用可能)を作成してファイルを格納することで、影響を受けるシステムのローカルリポジトリで「.git」ディレクトリ内のファイルを上書きすることや、任意のコマンドを実行することができるという。また、Mac OS XのHFS+ではUnicodeの特定範囲を無視するため、「.g\u200cit」のような名前のディレクトリを使用して攻撃を行うことも可能だ。影響を受けるのは主にWindows版とMac OS X版のクライアントで、大文字と小文字を区別するファイルシステムを使用している限りLinux版のクライアントは影響を受けない。
すでにGitは緊急メンテナンスリリースが公開されており、GitHub for WindowsやGitHub for Mac、Git for Windows、Git OS X installer、JGit、EGit、libgit2なども最新版で修正済みだ。また、MicrosoftがVisual StudioおよびTFS 2013の修正パッチを公開しているほか、AppleもXcode 6.2 beta 3を公開している。影響を受けるシステムのユーザーはもちろんだが、影響を受けないシステムであってもGitサーバーをホストしている場合には更新が強く推奨されている。
大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:3, すばらしい洞察)
WEBrickの時も思ったけど、大文字と小文字を区別しないFSって本当にクソ。
FSじゃないけど、ある場所と別な場所で大文字小文字が混ぜこぜになってるとか、某言語や某RDBMS信者にも以外と多い。
もはや存在自体が脆弱性。そして何より、一貫性のなさという気持ち悪さ。
FSにしろ言語にしろRDBMSにしろ、とっとと区別するように作り直せば良いのに…。
# ある場所では全部小文字で書いてたと思ったら、ある場所では全部大文字になってて、また別な場所ではキャメルケース。
# そんなクソをメンテさせられる俺の気持ちになれ。
Re:大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:5, 参考になる)
NTFS自体は区別します。
以前、停止状態にあるWindows7(64Bit)のNTFSをLinux(Debian Wheezy)にマウントしたところ、同じ名前の大文字、小文字のファイルを同じフォルダの下に新規作成、区別できることを確認しました。
ただ、そのWindows7を起動させたところ、くだんのファイルは両方ともエクスプローラで表示はできましたが、確か大文字の方しか開けませんでした。
削除は両方ともできたはず。
Re:大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:2)
他のOSでNTFSを適当に弄るとWindows側で読み込めなくなってたりしてつらい
逆ギレかっこわる (スコア:3, すばらしい洞察)
勝手に Linux のファイルシステムと同じふるまいを期待してパス名をまともに正規化してなかった Git のマルチプラットフォーム対応がクソだっただけにしか見えない
ファイルシステムとか DB みたいなミドルウェアのケースインセンシティヴな挙動もアプリ層やエンドユーザの視点からは便利な場合があるから設計判断として有り得るし明確な優劣は感じないな
Re: (スコア:0)
.git と git~1 と g\u200cit を一緒くたにされるのはさすがに邪魔じゃね?
Re: (スコア:0)
./.gitや.git/.が一緒くたなのは否定しないのかな?スラドなのに。
#実用的FSには特殊な文字やエイリアスはつき物。あとは単純か否か
##しかし.gitと.gIt(と.gitと.gⅰtと.gİtと.gìtと.gtと.gіtと.glt)が区別されるのもされないのも人間的に単純なのかどうか
Re:大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:2, 参考になる)
NTFSは大文字小文字区別するので、クソから逃れられるけど今回の件に該当しますな。
Windowsは割とそこら辺もちゃんとしてるけど、後方互換性の為に区別しない様な振る舞いを求められるケースが多い点にも留意して頂きたい。
Re:大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:1)
同感である。
DNSとかもそろそろ見直すべきか?
Re: (スコア:0)
メールアドレスも
Re:大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:2, 興味深い)
いや、メールは@の前は大文字小文字を区別しますよ。RFC-5321 の 2.4 に
>The local-part of a mailbox MUST BE treated as case sensitive.
ってある。一方 @ の後が case sentisive じゃないのは
>Mailbox domains follow normal DNS rules and are hence not case sensitive.
なので、DNS のせい。
Re:大文字と小文字を区別しないFSはクソ。はっきりわかんだね。 (スコア:1)
RFC-5321が発行されたということはその時点ですべての実装が準拠していることを意味するのではなく、
多くの場合誰よりも先に実装した人がRFCを起して認められた、くらいの意味だったと思うのですが。
Re: (スコア:0)
.jpと別に.Jpや.jPや.JPを作れるとか?
Re: (スコア:0)
.jpを作れると思うかによる。
Re: (スコア:0)
最終的にIPアドレスでしか区別出来なくなる未来
(既にそうなりつつあるような気がしなくもない…)
Re: (スコア:0)
security.slashdot.jpに来ながらslashdot.jpとIPアドレスで区別出来ると思えるとか……
Re: (スコア:0)
まずは一度、すべてのバーチャルホストに死んでいただくと。
Re: (スコア:0)
まともなRDBMSなら区別も同一視も自由自在なんだが。
RDBMS触ったことないんじゃないのか。
Symlinkが一般ユーザで作成できるOSはクソ。はっきりわかんだね。 (スコア:0)
Symlinkがらみで、過去に何度も重大な不具合を出しているクソOSの信者様ですかね? 無知って怖いな。
FC2掲示板の方が遥かに酷い脆弱性が無数にある (スコア:0)
FC2の掲示板はロシアスパマーに攻撃され、掲示板が機能せず、Google検索結果でリンクをクリックしてもFC2掲示板に辿り着けない。
FC2掲示板なんか作成しても時間の無駄。
勝手に掲示板を削除されちゃ堪らない。
何の警告もなく、ロシアが投下したスパムのせいで全て瞬時に掲示板ごと消え失せる。
strcasecmp (スコア:3, 興味深い)
なんかmsysgitは色々修正されてるがこれに関係ありそうなのはこの辺っぽい?
https://github.com/msysgit/git/commit/76e86fc6 [github.com]
https://github.com/msysgit/git/commit/cc2fc7c2 [github.com]
https://github.com/git/git/commit/d08c13b9 [github.com]
strcasecmpは、vcだと_strnicmpになるみたいだけど、これ入力文字列はたぶんUTF-8だよね。
でも_strnicmpはASCII前提だから「.git」と同じファイル名として認識されるUnicode文字があった場合を正常にはじけないと思い少し調べたけど、問題ないっぽい。
以下のブログを参考にした
http://dev.activebasic.com/egtra/2013/01/13/527/ [activebasic.com]
ちなみにwcsicmpはlocale未設定では全角Aと全角aが一致しない。
lstrcmpiWはiに一致する文字がI以外に2つある。
とか動作がまちまちで、脆弱性にはならなくても適当なプログラムは世の中に大量にある予感。
Re:strcasecmp (スコア:1)
トルコ語も楽しいことになるよ!
ディレクトリトラバーサル (スコア:1)
Windowsの短いファイル名がヤバいというのは比較的知られてると思うけど、Macの「.g\u200cit」とかはちゃんと対策されてるのかな?
Re: (スコア:0)
されてないと書いてますよ。
直したくても直せないのかな。互換性絡みで。
大文字小文字の区別がないことすら頭になかったとは (スコア:1)
リリース見ても、「Linuxには関係ない」って3回くらい書いてあるし、他人のせい感が満載なのが気になりますね。
今回の対策も、抜け穴をふさぎ切れているのか、正直あやしいと思っています(個人の感想です)。
しばらくは「信頼できるレポジトリ以外はfetchするな」という、なんちゃらOfficeで聞いたことのある注意書きを守るしかなさそうな。
Re:大文字小文字の区別がないことすら頭になかったとは (スコア:1)
そもそもgitはバイナリの扱いが腐ってるから使えない
結局svn
Linuxなら安全 (スコア:0)
彼の口癖だった
Re: (スコア:0)
OK、落ち着け。
WindowsとMacがメインの話だ。
実は仕込んでいた (スコア:0)
大文字と小文字を区別するFSのOSの優位性を主張したいがために・・・!
SourceTree (スコア:0)
SourceTreeはまだみたいなので内蔵gitではなくてGit for Windowsを入れてシステムGitを使用に変更した方がよさそう。
相手人間は萎える (スコア:0)
・これは今どき酷い(区別するの前提にしてるよねこれ)
・まあ(スラドではない)一般人には関係ない話
それはさておき、脆弱性対策ってめんどくさい。ほんと死ぬほどめんどくさい。
相手人間だからなあ。CPU相手にバグ直してるほうがよっぽど楽。
昔はたかだか数百円のソフトをわざわざディスアセンブラまで使って解析してクラックする
アレゲな奴らが少しはいたけど、今はフリーでも何してでもクラックされるからなあ。
死ぬまでメンテさせられ続けるのかな、彼ら。ご苦労様だわ。
# 女性なr
Re: (スコア:0)
日記?
Re: (スコア:0)
何かの病気だと思います
Re: (スコア:0)
途中で力尽きたようですね
NTFS では .git = git~1 (スコア:0)
NTFS だと .git が git~1 と同じに見えるってのは知らなかった・・・怖い。
Re:NTFS では .git = git~1 (スコア:1)
デフォルトだと「短い名前の作成オプション」が未構成になってますからね。
これを有効に構成してオプション設定を「すべてのボリュームで無効」にすればそういうMS-DOS互換(FAT互換)用の名前は生成されなくなりますが、その場合古いWindowsアプリやMS-DOSアプリを使っている場合に不正なファイル/ディレクトリ名と判断されてエラーになっちゃうかもしれません。
mercurial (スコア:0)
http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.2.3_.282014-12-18.29 [selenic.com]
FC2に膨大な脆弱性あり、特に掲示板が危険 (スコア:0)
脆弱性ならFC2の方が酷い。
アメリカ合衆国ネバダ州ラスベガスに本社を置く、Webサービスおよびホスティングサービスを展開する企業だが、メンテナンスが酷く脆弱性の数が飛び抜けて多く、全く話にならない。
Re: (スコア:0)
創価学会のSGIに信者として入信している在日外国人(ロシア人、ポルトガル人の割合が多い)がスパム・ウィルスをコメント爆弾として投下しており、ハッキングされ板自体が機能しない。