パスワードを忘れた? アカウント作成
13619165 story
バグ

さまざまなソフトウェアでのアーカイブファイル展開処理に脆弱性、任意コードの実行を許す可能性 32

ストーリー by hylom
広範囲に影響 部門より
あるAnonymous Coward曰く、

イギリスのセキュリティベンダーSnykが、ZIPなどのアーカイブファイルの展開時における脆弱性について注意喚起を行っている(発表された情報JPCERT/CC窓の杜)。

この脆弱性は「Zip Slip」と名付けられており、アーカイブ内に格納されているファイルのパスを相対パスに設定することで、利用者の意図とは異なる場所にファイルを展開させるというもののようだ。アーカイブファイルを操作するツールの一部ではこういった相対パスで指定されたファイルを検証せずにその場所に展開するものがあり、こういったツールで問題が発生するという。また、こういった問題はZIP以外のファイル形式でも発生する可能性があるという。

すでに複数のベンダーに非公開で報告が行われているとのことで、その多くで対策が実施されているという。影響を受ける製品やそのバージョン、対策状況などは“GitHub”のプロジェクトページで公開されている。

この問題はプログラマ向け情報サイト「StackOverflow」などで公開されている脆弱性のあるサンプルコードがそのまま使われることで拡散したともされている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
    • by Anonymous Coward on 2018年06月11日 17時26分 (#3423260)

      残念、そこは我々が27年前に通った道だ。
      http://phrack.org/issues/34/5.html#article [phrack.org]

      #仕様が原因だから仕方がない面もある

      親コメント
      • by Anonymous Coward

        PDFにも任意コマンドを実行できる仕様とかあるけどそれはもう仕様のほうが時代に合っていないから曲げざるを得ない

    • by Anonymous Coward

      関連リンクに無いけど、スラドでも記事になってたのなそれ。

      多くの解凍ソフトに指定外の場所に解凍してしまう脆弱性 [srad.jp]

      どうみても同じネタだよなぁ。中の人が世代交代して脆弱性も繰り返されるのか(しみじみ

    • by Anonymous Coward

      解凍に限らず、どこの誰が指定したのやら分からないパス名を扱うソフトを書くときは、よくよく注意して実装した上、ちゃんとテストしないと駄目な定番のポイントだよね。

    • by Anonymous Coward

      セキュリティ界隈がイマイチ反応が鈍いと思ってら
      同じ鉄を踏んだだけだったのかw

      近代言語向けに再実装した過程で再度出現したのは面白い事例だな
      横の情報共有は多いけど、縦の情報共有が薄いという証拠になりそう

      • by Anonymous Coward

        だって例えば tar 何てわざわざ警告出すって言うか、デフォルトで勝手にパスを書き換えるくらい解凍するときのパスでやらかした人は多いですから

        他の人も言ってますが飽きてるんですよ

        # tar: Removing leading `/' from member names

      • by Anonymous Coward

        ×同じ鉄
        ○同じ轍

    • by Anonymous Coward

      アメリカ大陸はコロンブスが発見するまで存在しなかったんだ。OK?

  • by Anonymous Coward on 2018年06月11日 16時14分 (#3423196)

    ディレクトリトラバーサルにしろ同フォルダのDLLを読ませる機能にしろ便利な機能を脆弱性扱いして無条件に禁止するのはやめて欲しい。オプションで有効化できれば規定値は無効で良いが。

    • by Anonymous Coward on 2018年06月11日 16時30分 (#3423212)

      ディレクトリトラバーサルにしろ同フォルダのDLLを読ませる機能にしろ便利な機能を脆弱性扱いして無条件に禁止するのはやめて欲しい。オプションで有効化できれば規定値は無効で良いが。

      いやいや今回のは
      LZH時代でも脆弱性扱いされてた
      懐かしのネタだから

      実装する人も代替わりして久しく
      歴史は繰り返されるというだけの話

      管理権限無いと書き込めないディレクトリがある分
      危険度は当時よりもわずかに軽いかも

      親コメント
      • by Anonymous Coward

        当時から脆弱性扱いして欲しくなかったのですが

      • by Anonymous Coward

        元コメはきっと「..」で親ディレクトリが辿れる機能がけしからん、禁止だ、って方向には行って欲しくないなぁ、って意味だよ。
        「..」とか余計な機能作んなよ、という理不尽で的外れな怒りは自分も覚えがある。

        簡易ウェブサーバみたいなのを作ってて、リクエストされた対象が、公開対象として指定したディレクトリから
        はみ出してるときには確実に蹴れるようなチェックってどうやったら完璧に出来るんだよ、と悩みつつ。

        「..」を含むリクエストを邪悪なリクエストとして蹴れば良いのか、「/」が複数続いてるとルートになるんだっけ、とか色々考えた挙げ句、
        ファイルのパスを作り上げてから、公開対象がその祖先になってるか調べる方法に落ち着いた。

        • by Ryo.F (3896) on 2018年06月11日 17時35分 (#3423269) 日記

          シンボリックリンクはどうしました?
          参考 [github.io]

          親コメント
          • by Anonymous Coward

            面倒くさかったので諦めた。それはファイルを置くときに気を付ければ済むことなので。

            極論すると、「公開ディレクトリの下にヤバいとこへのリンクを置いたり、ヤバいものをマウントしたりしない」ってのは、
            「公開ディレクトリの下に重要なファイルを置かない」というポリシーに含まれるし。

            シンボリックリンクとマウントと、その他、調べてないけど、他にもあるならそれらも含めて、今、考えられるあらゆることに対応しておけば、
            今後作られるどんなOSや環境でも大丈夫、という保証もないし。
            Windowsでいつの間にやら増えたVirtualStore機能みたいに、何か新たな仕組みがいつの間にやら増えるかも知れないし。

            一部だけ対応して安心なつもりになっちゃうのも危ないかな、とかあれこれ自分に言い訳をして。

            • by Ryo.F (3896) on 2018年06月12日 0時45分 (#3423489) 日記

              面倒くさかったので諦めた。それはファイルを置くときに気を付ければ済むことなので。

              そのノウハウは重要だし、なんらかドキュメント化されるべきものだと思うな。

              親コメント
              • by Anonymous Coward

                うん。どこかのセキュリティの専門の機関が、現状ではこれだけ気を付ければOK、
                と太鼓判を押すようなガイドラインを公開してアップデートし続けておいて欲しい。

        • /でルートディレクトリ
          //でスーパールート。次に来るのは「ホスト名」

          大元はRFS(Remote File System)
          URIの最初(プロトコルハンドラだっけ?の次)も発想元はこれだったはず

    • by Anonymous Coward

      記事が脆弱性としてるのは、例えば、指定したディレクトリに展開するの機能なのにそういうアーカイブが許可されている、というようなものでは?
      それ自体が解凍ソフトでも無ければ、少なくとも無制限にはこの機能は不要でしょうから、ユーザー入力+eval()=脆弱性みたいなことだと思います。

    • by Anonymous Coward

      コマンドラインとかではデフォルトで相対パス解決が有効になっててもいいけど、ソースコード上では明示的に関数を呼んでやらせない限り勝手なことはしないようにして欲しかったな
      短い関数名にしておけば毎回書くのも大した手間ではないだろうに、無能な働き者が余計な処理を仕込んだせいで、手間が省けるより「お前を消す方法」を探す手間がかかることの方が多くなってしまってる

    • by Anonymous Coward

      同フォルダのDLLを読ませる機能をいつ無条件で禁止した?

    • by Anonymous Coward

      規定値

  • by Anonymous Coward on 2018年06月11日 17時29分 (#3423263)

    スラドの超高齢化であった

  • by Anonymous Coward on 2018年06月11日 17時57分 (#3423283)

    /etcをフルパスでtarボールにして持って帰ってきた同僚がいたなあ。

    • by Anonymous Coward

      chrootすりゃいいだろ

      • by Anonymous Coward

        そういうコマンドあること知らないんだろ

    • by Anonymous Coward

      だからGNU tarを使えとあれほど… …

typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...