パスワードを忘れた? アカウント作成
278140 journal

dodaの日記: CygTerm Here のセキュリティ問題

日記 by doda

かなり前の話だが、DLL プリロード攻撃が問題になった時に、Tera Term でも一通りチェックし問題がない事を確認していた。
最近もう一度チェックし直したら、Tera Term 本体には問題は無いのだが、CygTerm Here で問題が起きる可能性が有るのに気が付いた。

CygTerm Here は、指定したフォルダをカレントディレクトリにして CygTerm を起動する為の機能。
Explorer でフォルダを右クリックした時のコンテキストメニューで CygTerm Here を選択すると、そのフォルダをカレントディレクトリにした状態で CygTerm が起動する。
この時、対象のフォルダまたはその親フォルダに偽の cygwin1.dll 等が有るとそれを読み込んでしまう。
これって、cygwin の仕様に問題があるよなあ。
cygwin の公式なパッケージは基本的に /usr/bin に有るから問題ないが、/usr/local/bin 等に追加で入れたプログラムはカレントディレクトリに偽の cygwin1.dll が有ると、起動したときにそれを読み込んでしまう。
なので、安全を考えると自分で追加で入れるプログラムも /usr/bin に入れた方がよい。

これは追加でプログラムを入れた時だけの問題でも無い。
cygwin 公式のパッケージでも、一部の実行コマンドは /usr/sbin に入るようになっているので、 問題が起きる可能性がある。

sue@kaede% which chkconfig                                            ~ 12:40 1
/usr/sbin/chkconfig
sue@kaede% chkconfig --help                                           ~ 12:40 0
chkconfig version 1.3.30a - Copyright (C) 1997-2000 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.
 
usage:   chkconfig --list [name]
         chkconfig --add <name>
         chkconfig --del <name>
         chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities>
sue@kaede% touch cygwin1.dll                                          ~ 12:40 1    <-- 空の cygwin1.dll を作成
sue@kaede% chkconfig --help                                           ~ 12:40 0    <-- まともに動かない
sue@kaede% rm cygwin1.dll                                           ~ 12:40 127    <-- 空の cygwin1.dll を削除
sue@kaede% chkconfig --help                                           ~ 12:40 0    <-- 動くようになる
chkconfig version 1.3.30a - Copyright (C) 1997-2000 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.
 
usage:   chkconfig --list [name]
         chkconfig --add <name>
         chkconfig --del <name>
         chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities>
sue@kaede%                                                            ~ 12:40 1

cygwin の仕様自体に問題があるとも言えるのだが、放っておく訳にもいかないので対策をした。
# 自分でも、他所から入手してきたアーカイブを展開したフォルダに対して CygTerm Here をしたりとかしているし

対策したバージョンは、cygterm+-1.07_20.zip にあるので、cygterm.exe と cyglaunch.exe をこれに含まれる物で置き換える。
もしくは、まもなく Tera Term 4.68 がリリースされる予定なので、これをインストールすれば OK。

もう一度書くけれど、この問題はどちらかというと cygwin の仕様に問題が有る。
その為、オリジナルの CygTerm を使って CygTerm Here と同様な事を行っている場 合も問題が出る。
# ただし、cygterm.exe を cygwin の /usr/bin に置いている場合は除く
上記の cygterm+-1.07_20.zip は Tera Term 以外と組み合わせる事が出来るので、オリジナルの CygTerm を使って CygTerm Here を実現している場合も cygterm.exe + cyglaunch.exe の組み合わせに置き換える事を推奨します。

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

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...