パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

LhaplusとLhasa、DLLの読み込みに関する脆弱性」記事へのコメント

  • by Anonymous Coward on 2010年10月13日 0時13分 (#1839223)

    仕様上、特定のパスからしかDLLのロードを認めないというわけにはいかないでしょ?
    OS標準じゃないからOSのバージョンで判定するわけにもいかないし。
    そもそも「別途DLLが必要」なんてもの自体流行らない(つーかこの仕様そのものがまさに脆弱性の元だし)。今さらDLL作者の呼びかけに反してまでそんなもの使い続けている老害は「必ずシステムディレクトリに置いてください。PATHの通ったところに置いても認識しません」なんて仕様にしたら猛反発するに決まってるし。
    「別途アーカイバが必要」さえWindows標準のZip/LZH圧縮フォルダの前には風前の灯。

    • LHMeltにおける安全でないライブラリーのロードによりリモートでコードが実行される脆弱性 [nifty.com]

      今回の脆弱性に対応した Ver 1.65a 以降の LHMelt では, カレントディレクトリーからの DLL 等のロードが禁止される

      書庫と同じディレクトリに悪意あるDLLが置かれていても問題無い様に
      LHMeltはカレントディレクトリからのDLLのロードをできないようにしたようです。

      簡単な確認方法:適当なテキストファイルを, 例えば "UNLHA32.DLL" の名前で作成し, それを任意の書庫と同じディレクトリー上に置いておく。 その上で, 当該書庫を関連付け等で LHMelt に起動と同時に読み込ませる。 「"unlha32.dll" このDLLはロードできませんでした」といった LHMelt の警告や OS の警告が表示されれば, 当該 DLL のロードについて脆弱性が残っている。

      詳細(DLLの読み込みの優先順位など)は
      技術情報、補足情報あたりを読むと分かるかと

      親コメント
    • by Anonymous Coward

      http://support.microsoft.com/kb/2264107 [microsoft.com]
      の対象は(プログラム起動のトリガになったファイルのある)カレントディレクトリだけです。

      プログラム側が自分で絶対パス入れたりする場合は問題無くDLL読み込みますし、プログラムと同じディレクトリやPATHの通ったディレクトリは従来どおり検索するので通常は問題ありません。

      プラグインなど、本体と隔離されたDLLがツレを読み込めなかったりするって問題はありますが、これに当る事はさほど多くないので、自分の場合はこのHotFix入れていても何とかなってます。

    • by Anonymous Coward
      インストール時や、設定時にDLLの場所を検索して静的パスにすればいいだけでは?
      もともと、DLLあるかどうか検索しているわけだし。

物事のやり方は一つではない -- Perlな人

処理中...