$ 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
.
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
確かに。今だと、.bashrc を狙ってくるでしょうね。展開する前に、中身をよく確認する癖を付けないと。GNU tar なら -k, --keep-old-files を付けるとかの逃げもあるけど、元々無いファイル
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:1)
a
a/../../../.cshrc
というような作り込みかたもありだと思うので、「../で始まる」ではなくて「../を含む」ものをチェックしたほうがよろしいかと思います。しかしアーカイブ内に1000個くらいファイルがあったりするとチェック大変ですよね。Unix系な
人生は七転び八起き、一日は早寝早起き
Re:Admin権限でつかう文化?がそもそもおかしい、、 (スコア:2, 参考になる)
となりまし
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)