$ cd check
$ tar cfz /tmp/a.tar.gz ../.bashrc
tar: Member names contain `..'
$ tar tfz /tmp/a.tar.gz
../.bashrc
$ rm ../.bashrc
$ tar xvfz /tmp/a.tar.gz
../.bashrc
tar: ../.bashrc: Member name contains `..'
tar: Error exit delayed from previous errors
$ ls .bashrc ../.bashrc
ls: ../.bashrc: No such file or directory
ls: .bashrc: No such file or directory
$ cd; cvs update .bashrc ...
確かに直接上位ディレクトリを指定するとそうなるんですが、
tar cfz /tmp/a.tar.gz ./../.bashrc
とするとなにも言われずにアーカイブ/アンアーカイブされますので、
あまり意味ないチェックですね。
(そもそも変なアーカイブを作るのに tar を直接叩かないかもしれませんが)
Mac OS X 10.3.5 上の GNU tar 1.13.25 で試しましたが、多分他でも
一緒じゃないかな。
Admin権限でつかう文化?がそもそもおかしい、、 (スコア:2, すばらしい洞察)
脆弱性といえば脆弱性だけど、解凍するソフトウェアの脆弱性
というよりはWindowsの慣習の脆弱性だと思う。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
Unix だって、 .csh に展開されて、シェルを起動したとたんにドカンとか、いくらでも同様のことが起こり得る。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
.csh に展開されて、シェルを起動したとたんにドカンとか
残念ながら.cshの意味するところがよく理解できてないのですが(.loginとか.logoutのことでしょうか?)、自動でシェルスクリプトの中身を実行するように仕立て上げるにしてもそのディレクトリ(ホームディレクトリとか/etcとか)には書き込みを行うための権限が設定されていなければならないわけで、お使いの*nixシステムが適切にインストールされ使用されていればあり得ない話です。
Windowsの場合、元々がWindows 3.1/95/98/Meのような「ユーザごとの権限設定機能を持たない」
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1, 興味深い)
おっと書き間違えました。「.cshrc」です。
> 書き込みを行うための権限が設定されていなければならないわけで
~/.cshrc は書き込みできるでしょ。普通。
アーカイブの内容がこんな感じだとまずい。
.cshrc
../.cshrc
../../.cshrc
../../../.cshrc
../../../../.cshrc
../../../../../.cshrc
../../../../../../.cshrc
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
確かに。今だと、.bashrc を狙ってくるでしょうね。展開する前に、中身をよく確認する癖を付けないと。GNU tar なら -k, --keep-old-files を付けるとかの逃げもあるけど、元々無いファイル作られて自動実行に陥るなんてケースは避けられない。
アーカイブを展開するソフトすべてが ../ で始まるファイル名をチェックするようにならんとマズのか。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
a
a/../../../.cshrc
というような作り込みかたもありだと思うので、「../で始まる」ではなくて「../を含む」ものをチェックしたほうがよろしいかと思います。しかしアーカイブ内に1000個くらいファイルがあったりするとチェック大変ですよね。Unix系ならgrepすればいいけどWindowsだとどうすればいいのやら。
手持ちのlzh形式を解凍できるソフトは(実際の解凍はせずに)アーカイブ内のファイルの一覧を取得する機能はなさそうです。そういった機能のある解凍ソフトをご存知の方はいませんか?
人生は七転び八起き、一日は早寝早起き
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:2, 参考になる)
cpio や unzip、xpi などはどうなっているのやら…
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
http://www2.nsknet.or.jp/~micco/mysoft/lhmelt.htm
アーカイブファイルをダブルクリックしただけでは、内容一覧しか表示せず、
解凍は、C-A(全選択)してC-E(解凍)というような感じです。
形式は、lzhからtar.bz2まで、各種に対応しています。
zipだけは、最近はWindowsの機能を使うようになってしまいましたが。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
tar cfz /tmp/a.tar.gz ./../.bashrc
とするとなにも言われずにアーカイブ/アンアーカイブされますので、
あまり意味ないチェックですね。
(そもそも変なアーカイブを作るのに tar を直接叩かないかもしれませんが)
Mac OS X 10.3.5 上の GNU tar 1.13.25 で試しましたが、多分他でも
一緒じゃないかな。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
> 一緒じゃないかな。
ううむ。たぶん、Mac OS X の GNU tar は何か違うのでしょう。 FreeBSD と Vine Linux の GNU tar 1.13.25 で試しましたが、./../.bashrc でも同じ warning とエラーになりました。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:2, 参考になる)
p を加算していないので、./../hoge がマッチしないようです。
(darwin 8b [apple.com]でも同じ。バグっぽい…)
本家のソース(1.14) [gnu.org]ではそんな事は無いようです。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
どちらにせよ、実装まかせでは無理がありそう。chroot(8) かませるようにするかな。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
名物に旨いものなし!
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
400 って、ユーザの読み込みのみですよね?
仮に .cshrc なりが 400 になっているとして、
添加するのがユーザだとしたら、
どのような影響が考えられるのでしょうか。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
ことの本質が「Admin権限でつかう文化がそもそもおかしい」ということではない
という意味の指摘では?
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
#すっごく面倒くさいですけどね。いっときやってましたがギブアップ・・・
名物に旨いものなし!
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
つまり、400 にしておいても、ファイルを上書きできてしまう?
touch test1
chmod 400 test1
cp 他のファイル test1
cp: cannot create regular file `test1': 許可がありません
なんですが、、、やり方が間違っているんでしょうか
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1, 参考になる)
>つまり、400 にしておいても、ファイルを上書きできてしまう?
「上書き」は出来ませんが消して同名のファイルを新しく作ることはできます。
mkdir foo; chmod 700 foo
touch foo/bar; chmod 400 foo/bar
tar cf foo.tar foo
chmod 600 foo/bar; echo test > foo/bar; chmod 400 foo/bar
tar xf foo.tar
cat foo/bar
MacOS X 10.3.5, GNU tar 1.13.25 で試したら foo/bar の内容が消えました。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
cp なんかは、そんな余計なことしないように作られていますが、そうじゃないプログラムを作るのは簡単です。
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
rmってのはファイルの中身を変えるんじゃなくて、ファイルが存在する
ディレクトリ情報を更新するんだから、ディレクトリに書き込み権があ
れば削除できる。ファイルを消すってことは、ディレクトリを更新するって
ことにほかならないからな。
別にMac OS Xじゃなくても、HP-UXとかでもできるぞ。
手元のFedora Coreでも、root:sysでアクセス権000なファイルを
削除できる
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
ディレクトリfooのアクセス権を400にすれば、当然tar xfも
エラーになります。
まあディレクトリにアクセス権があればファイルの削除・追加
ができることを考えれば、当然の結果なわけですが...
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:0)
が、ちと思うに、それはユーザーがそうあって欲しいと思う状況なのか?って処が疑問なのであるが。