[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00763] Re: security bug report



青野です。こんにちは。
#Wnnについては付け焼刃ですので、どんどん突っ込みを入れて
#ください。

<20011009014336C.hiroo@oikumene.gcd.org>の記事において
hiroo@oikumene.gcd.orgさんは書きました。

>> そもそも、この ML に参加しているという以外に「誰が Project メンバー」
>> という区切りってあるのでしょうか?
>> 「FreeWnn Project として」何かを決めるというのは誰がどうするのでしょう?

MLに参加している方全員の総意を問うのは現実的ではありません。
(例えば)ソースツリーにcommitできる人などある程度限定された
人々が判断することになると思います。他のフリーソフトの組織
構成も似たようなものではないかと思いますが、いかがでしょう
か…。
#feature freezeしてMLの方々(今回の場合、報告された田畑氏
#にも加わってほしいところですが)にpre-release版としてテス
#トしてもらい、問題なければ(報告なく一週間ほど経てば)リリー
#スする方法はあると思います。

個人的にいえば古川さんや小野さんが中心的なメンバーなのかな
と勝手に思っているのですが、人数が少ない分責任が重過ぎると
も思います。
#そのためできる範囲でお手伝いしたいと思っています。

>> 私にわかるのは FreeWnn だけなので、それに限ってまとめ直しますが、
>> ・jserver が知っているのは、JSERVERDIR という path だけ。
>>   JSERVERDIR は compile 時 or jserverrc で指定される。
>> ・KKTP にはユーザーという概念が存在しないので、user は区別できない。
>>   当然、jserver は user を区別していない。

一応KKTPではJS_OPENコマンドでホスト名とユーザ名を通知する
ことになっています。そのため、user を区別することはできま
す(c_c->username)。ただしパスワード認証等の裏付けがないの
で個人的には信用したくないですが…。ソースは公開されていな
いのであくまでも推測ですがWnn6以降ではwnnaccessなどのアク
セス制御で活用しているのではないでしょうか。
#libwnnを使っている範囲ではともかく、プロトコルを直接たた
#かれるとユーザ名の詐称は可能だと考えます。

>> というわけで、
>> 
>> ・JSERVERDIR 以外の path にユーザーが辞書ファイルを置く/作ることがある
>>   ので、jserver は無批判に辞書の path を受け付けるようにしてある。
>> ・正しいユーザーかどうかは確認 (できないので) しない。
>> ・従って、~/.wnndic/ 下のみといった制限は、ユーザー、path が正しいかど
>>   うか判別しようがないので、かけられない。

第2項の部分は前述のとおりですが、他については青野もそうだ
と思います。

>> ではこれまでは何ができたかというと、
>> ・jserver の user 権限で書き込める場所を限る。
(略)
>> ・個人用の辞書には、password をかける。
>>   共有の辞書は、owner != wnn にして jserver が更新できないようにする

インストール時にそれをするのは対策になりますか?  少なくと
もpubdic+の場合、デフォルトではowner wnn, パーミッションは
644となっています。
#変更した場合の影響については未検証です。

>> ・JSERVERDIR 以外におかれている辞書は
>>         JS_FILE_SEND            0x63
>>         JS_FILE_RECEIVE         0x64
>>   を使って jserver とやりとりする。
(略)
>> というところでしょうか。
>> じゃあ、これをどう変えればよいの? という話は brain storming 程度しかさ
>> れていないというところだと思います。

>> 他に、私の個人的な問題:
(略)
>>     Wnn FAQ 1-5 にある辞書/頻度ファイル名の冒頭に ! をつけるというのが
>>     解なんでしょうか。

libwnnのソースを追ってみたのですが、libwnn(クライアント側) 
の実装としてそうなっている印象を受けました。("!"(C_LOCAL) 
が各ファイル名の冒頭に見つかればローカル参照する関数群を使
用するようなコーディングがになっていると思います。)このこ
とはマニュアルに書き足してもいいのではないかと思います。
#ちなみにWnn7のユーザマニュアルにも囲み記事として触れられ
#ています。

ただしlibwnnでの実装なので、[freewnn:00761]で青野が述べた
(Wnn6-SDKを使ったクライアントでの)問題が起きてしまいます。
#Wnn6-SDKが新たに作る頻度ファイルはWnn4とは互換性がない模
#様です。一度Wnn4のlibwnnで作っておけば問題は起きません。

>> 1.10 にあてるのは .rej みてちょいちょいと変えてというわけにはゆかなそ
>> うなので、完成度が低くてもどこかで切って 1.1.1 を出してしまった方がよ
>> いのでしょうね。

肝心のALLOW_UNSAFE_PATHの部分はrejectされずに適用できたの
で、configure/imake双方について少しいじって1.1(0)用のパッチ
を作ってみました。検証の必要はありますが、いりますか?

>> どのみち、Linux、*BSD 方面では -aXXX が rpm やら ports/pkgsrc に使われ
>> ているわけですし。
>> % 前が 1.10 なら、今度は 1.11 のような気がするのだけど、何で 1.1.1 に
>> % なったのでしたっけ?

青野も事情はわかりません。参考までに、1.1 リリース時のアナ
ウンス([freewnn:00007])では Subject:などほとんどの部分では
「1.1」と表記されていますが、ファイル名のみ「1.10」となっ
ています。
#マイナーバージョンアップで収まる変更ではないので、個人的
#には1.2としてリリースすることを希望。
----
青野智樹	(aono@cc.osaka-kyoiku.ac.jp)


http://www.freewnn.org/ FreeWnn Project