極大フォントサイズ指定でXがDoS状態に 61
ストーリー by yourCat
そもそも読めない 部門より
そもそも読めない 部門より
k3c 曰く、 "SecurityFocusの記事によれば、いくつかのXウインドウシステムにおいて極端に大きなフォントサイズを処理させると、Xがクラッシュしたりメモリを使いきってDoS (サービス拒否) 状態になることが分かった。最初はMozillaのCSSで極端に大きなフォントサイズを指定するとXごとお亡くなりになるという話だったのだが、Mozillaが大きなフォントサイズ指定をそのままXへ渡してしまうことと、X側の処理に問題があるという2つの問題に切り分けられた。Mozillaは既にtrunkで修正済みであり、1.0.1でも修正が入るらしい。XFree86では4.0~4.2.0までが該当するがパッチはまだ提供されていない模様。回避策として、リソース制限をかけた上でroot以外の権限でXを起動するという方法が紹介されている。Mozilla以外のブラウザやその他のアプリケーションでも発生し得る問題なので要注意。"
X-TT も…… (スコア:4, 参考になる)
でも、直すには dix ⇔libfont のインターフェースに手を入れないといかんですたい。
# 根本的には、X プロトコルのフォントまわりのデザインが駄目。
Re:X-TT も…… (スコア:1)
やっぱフォントキャッシュの容量こえるとダメになる問題、 奥が深いんですか.... フォントキャッシュが溢れるサイズの絵を書かせようとしても、 キャッシュをバイパスしないところみて「おぃ何考えているだぁ?」 なんて思った経験あり。
Re:X-TT も…… (スコア:1, 興味深い)
なんでか、というと、X サーバの上位レイヤが、下位の libfont に
対してグリフが不要になったことを通知するインターフェースが
ないからなんですな。
したがって、full wired 以外のグリフバッファを安全に実装する
方法というのは存在しないんですけども、
X-TT 1.3 以降に入ってる fontcache はそこの処理でちょっといんちきしてまして、
「一回の文字列描画分は fontcache から expire しない」
という仮定がされてます。
実際には大きな文字を描画するとこの仮定が崩れてしまうんですな。
Re:X-TT も…… (スコア:0)
> 今の X の仕組みだと
「今の X のサンプル実装だと」ですね。具体的には、X11R4 以降の
MIT/Opengroup/X.Org 配布のサンプル実装と、それから派生した
ほとんどの実装(XFree86 も含む)です。
実際には、Xserver を改造すれば不可能ではありません。
Re:X-TT も…… (スコア:1)
問題って、あくまでサーバの実装の話であって、
プロトコルの欠陥じゃないんだ。
本質的には問題解決のためにクライアントに手をいれる必要はないと言うことか。
# mishimaは本田透先生を熱烈に応援しています
DoS? (スコア:2)
http://www.cert.org/tech_tips/denial_of_service.html
に出てる定義には、あてはまらないように思います。
Re:DoS? (スコア:2, 参考になる)
> explicit attempt by attackers to prevent legitimate users
> of a service from using that service.
悪意ある Web ページを入力された Mozilla (attacker) が、
正規の X サーバへのリクエスト (つまり X の service) によって
X サーバのリソースを過剰に消費させ、
他の X クライアント (legitmate users) との通信を邪魔する、
で、あてはまると思うんだが。
# mishimaは本田透先生を熱烈に応援しています
ちょと違うかも、ですが (スコア:1)
そしてそのまま再起動。ちょと哀しかったです。 (うちはまだ Xfree3.3.6 ですから、別件?)
アルファベットでさえ DoS ですからね (スコア:1)
言わんやマルチバイト文字をや。キッツイのは、html 冒頭で <font size=+1> とかしているページ。数分フリーズしてくれます。
そんな悪意のない DoS って、罪に問えないよなー。
Re:アルファベットでさえ DoS ですからね (スコア:3, 参考になる)
これは、XF3.3.x+Netscape 4時代にはまりましたが…xfs-xttの説明ページかどっかで回避方法を見て、実行したらブラウザの起動時間が劇的に短縮できましたよ。
Re:アルファベットでさえ DoS ですからね (スコア:1)
もちろん。 意図的に X を使っているクライアントを User-Agent: で判断して、CSS でデカいフォントを指定していたりすれば、そこに意図するものがあって罪に問うことは可能ですが。 一般的にデカいフォントを表示すると、Window System がコケるなんていうのは、セキュリティホールであるか否かということ以前にWindow System そのものの問題だといわれて終わりそうな感じです。
要するにだ (スコア:1, 興味深い)
てだけのことだろ? OSが頑強で。。。っとか口ではいってても
たかがウィンドウシステムごときに殺されてしまうのだったら
意味ないじゃん。
あらあら、しかしその割には大人しいものですね。MS-Windows
で「大きなフォントを指定したら落ちる」なんてあったら即
「スラド名物MS叩き祭」でしょうに。。。いつものの元気はどこ
へいったの?(藁)
改悪するから叩かれる (スコア:2, 興味深い)
このぐらいのレベルでは落ちる可能性は常に存在するというのがUNIX屋としては普通の感覚でしょう. Xでも10数年前からメモリリークが有るとか, メモリ解放機構がまずくて24時間運用には耐えられないとか言い続けられていたわけですから.
でもって, その反省に基づいてNT3.51まではグラフィックサブシステムをカーネルから外し, たとえウィンドウシステムを使っていても安定性を損なわないようになっていたわけです. ところがNT4以降では速度性能を求めるあまりグラフィック機構をカーネルに組み入れてしまったわけで, これによって安定性が一気にWindows98クラスにまで下がってしまったという歴史的事実が有ります. このことはMSが, 少なくともその当時は, 安定性よりも見た目を重視する方針であることを如実に示していたわけであり, そのことはブルースクリーンを見まくった現場の技術者にとっては容易に消すことの出来ない不信感として記憶されたわけです.
この改悪さえなければ, NTのウィンドウシステムでXに対して劣るところと言えばネットワーク透過性の無さぐらいでしょう. ただ, これが無いと本質的に不安定なウィンドウシステムを必ず本体の上で動かさなければならないということで, サーバとして使う場合には大きな欠点となってしまうわけですが.
Re:改悪するから叩かれる (スコア:0)
これはさすがに誇張かと^^;
さて、Microsoftの言い分では、「WindowsはGUIを大前提としたOSだから、グラフィックモジュールが死んでしまったらカーネルが生きていても大して変わらない」というものでしたね。
ワークステーションやPC的な用途としては(つまりNT WS~2000 Pro系統)、NT4での仕様変更はまあしゃあないかなと。Windows9xと比べて余りにもパフォーマンスが低いの
Re:改悪するから叩かれる (スコア:1)
>> 安定性が一気にWindows98クラスにまで下がってしまった
> これはさすがに誇張かと^^;
普通に考えればメモリ管理やファイルシステムが優秀なNT系がWin98並みってのはおかしいんですけど, NT4のころはまだグラフィックメーカのNT系のドライバに関するスキルが低かったせいか秘孔を突くことが多く, 本当に98並みかそれ以上に落ちまくっていました. サーバ等のメーカがセットで検証している構成なら問題はほとんど無いのですが, 安定した業務用クライアントを構成しようとしてNT4を使うとどつぼにはまるというのが多いパターンでした. こういう経験はWin2000ではほとんど無くなりましたね.
本当にNTってSolaris並みにサーバ用としても素性のいいOSのはずなのに, GUIのおかげで足を引っ張られているように私は感じます.
Re:改悪するから叩かれる (スコア:1)
なので、 サーバのグラフィックドライバで古いのを探してくるとか、 起動したらなるべくログオンしないとか、 いろいろ気を使わされてしまうわけですね。 知り合いにはAdministratorのシェルをCMD.EXEに変更している人がいました。
何でこんな……、とはいつも思いますが。
Re:改悪するから叩かれる (スコア:0)
Windows2000から、Microsoftがドライバ開発者のために安定性試験用のツールなどを提供しはじめたのもあるでしょうね。
NT系の安定性は、グラフィックカードで決まるような気もします。古いカー
Re:要するにだ (スコア:1)
余談ですが、GUI=OSという誤った概念が普及したのがMS-Windowsの最大の罪だと思います。GUIって自分のイメージだと単なるシェルで、同じOSでも異なった実装があるし、あるべきだというのがワタシの感覚なんですが。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:要するにだ (スコア:1)
どこかにシェアの資料があるのかな?
PDA (スコア:1)
SunViewってあなた (スコア:1)
X LikeなのはOpenWindowSystemですよ。あくまで互換ですが。
ええ (スコア:1)
Re:要するにだ (スコア:0)
なんてどうでしょ。まだ実用段階じゃありませんが。:-)
Re:要するにだ (スコア:0)
Re:要するにだ (スコア:0)
殆どですけど、フリーズすると何も出来ずキツイですよね。
unix系みたいに telnet で入って kill したいって思うことが
たまにあります。
Re:要するにだ (スコア:1)
Re:要するにだ (スコア:0)
Re:要するにだ (スコア:0)
Re:要するにだ (スコア:0)
Windows XP ではコマンドラインツールがいろいろろ強化されているとは聞きますが。
Re:要するにだ (スコア:1, 参考になる)
Re:要するにだ (スコア:0)
"X-Window"ってーのはありません。
です。
# man X してくらさい。
Re:要するにだ (スコア:1)
鵜呑みにしてみる?
Re:要するにだ (スコア:1)
MSも半角スペースまで細かく指示されます。
そうじゃないときに叩かれるのは、まあ、そういう人だと思うしかないんじゃないでしょうかね。一緒に働きたくはないですけど(笑)
揚げ足取りみたいですが (スコア:0)
Re:要するにだ (スコア:1)
とりあえず、ウィンドウシステムが落ちたくらいで
OSは全くダメージを負わないと思いますが。
たかがウィンドウシステムごときで
落ちるOSってのは、今やMS-Windowsくらいかと思います。
>>たかがウィンドウシステムごときに殺されてしまうのだったら
いや、だからこの文がおかしいのではないかと。
殺されるのはウィンドウシステムであって、ウィンドウシステムが
OSを殺すのはMS-Windowsくらいです。
Mac OSXはどうなんでしょうか、、あれは、Darwinだけで
起動できるとは聞いているのですが、AQUAのみの
再起動?とかできるのでしょうか。
じゃあ (スコア:0)
.net serverもWeb Serverってバージョンでるみたいだし、
組込用途もやっているみたいだし、
可能性はあるかもしれませんね。
Re:じゃあ (スコア:0)
Re:要するにだ (スコア:0)
Re:要するにだ (スコア:0)
Re:要するにだ (スコア:0)
X Windowを使うのは別に現在のMS-Windowsと比較してどっちが駄目かってだけで判断してるのではなくて、駄目なところが見つかったら速やかに修正される機構があるからじゃないの?
Re:要するにだ (スコア:0)
意味ないじゃん。
「たかがMozillaごときにX-Windowが殺される」だろ。
Re:要するにだ (スコア:2, すばらしい洞察)
意味ないじゃん。
> 「たかがMozillaごときにX-Windowが殺される」だろ。
「たかがMozillaごときにXFree86が殺される」ですね。
Re:要するにだ (スコア:0)
Linuxまで道連れにしてくれます。
Ctrl+Alt+{BS,Del}でもリセットできませんし、
SSHでリモートから入ることすらできません。
Mozillaさえ使わなければこういうことないんですがね。
Mozillaが悪いのか、Xが悪いのか。はてはて。
Re:要するにだ (スコア:0)
> Mozillaが悪いのか、Xが悪いのか。はてはて。
実はハードが悪いとかって事はありませんか?
熱暴走とかメモリエラーとかでもこういう事は起こりますが……。
Re:要するにだ (スコア:0)
んー、昔の X 端末は、クライアントごとにメモリ使用量のアカウントを持ってたので、
今回みたいな話に関しては別に X Window System の
システムとしての問題じゃないと思うよ。
そりゃ、/.J 名物の MS たたきは場合によっては見苦しいけど、
君みたいな無知な /.J 叩きも見苦しいよ。
これもちょっと違うかも、ですが (スコア:0)
potatoでTrueTypeを使えるようにしているのですが。
Netscape4.7で観覧中、ウィンドウのリサイズとか、
手前のウィンドウをぐりぐり動かすと、突然ネスケが
終了してしまうのです。
様子を見ていると、まるでアップデートイベントが積み重なって、
処理し切れずに落ちるような・・・(元々マックユーザーなので
用語が適切じゃないかもしれません。すみません)
ひょっとしたら今回の話と似ているかも、とも思いましたが、
いかがでしょうか。解決法など、御存じでしたら、
御教示いただければ幸いです。
Re:これもちょっと違うかも、ですが (スコア:1)
X 云々よりも、Mozilla にするのが一番ではないかと思います。もう二度とあのころ(Netscape 4)には戻りたくない……。
Re:これもちょっと違うかも、ですが (スコア:1)
んで、Netscape-4 あたりになると、zlib の double free() 問題も放置プレイされていそですし。 それを言ったら Windows/Mac の InternetExplorer の zlib もクサいんですが。
Re:これもちょっと違うかも、ですが (スコア:0)
それはそうと、Netscape 4.7x for Xは元から不安定なので、
とっととステステして6.xかMozillaに変えちゃいましょう。
Re:これもちょっと違うかも、ですが (スコア:0)
みなさんの意見が一致している様ですので、Mozillaへ変える事とします。
MLにはどれにも属してないし、今まで調べた範囲ではこの件について
資料が見つからなかったので、困っていました。
ありがとうございました。