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

極大フォントサイズ指定で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, 参考になる)

    by Anonymous Coward on 2002年06月18日 1時41分 (#109054)
    ごめん、大きなフォントをロードするとフォントキャッシュあふれて死にます。
    でも、直すには dix ⇔libfont のインターフェースに手を入れないといかんですたい。
    # 根本的には、X プロトコルのフォントまわりのデザインが駄目。
    • by masaru (2119) on 2002年06月18日 3時43分 (#109086) ホームページ

      やっぱフォントキャッシュの容量こえるとダメになる問題、 奥が深いんですか.... フォントキャッシュが溢れるサイズの絵を書かせようとしても、 キャッシュをバイパスしないところみて「おぃ何考えているだぁ?」 なんて思った経験あり。

      親コメント
      • Re:X-TT も…… (スコア:1, 興味深い)

        by Anonymous Coward on 2002年06月18日 14時07分 (#109386)
        今の X の仕組みだと本当は「全部のグリフを取っておく」必要があるんですよ。
        なんでか、というと、X サーバの上位レイヤが、下位の libfont に
        対してグリフが不要になったことを通知するインターフェースが
        ないからなんですな。

        したがって、full wired 以外のグリフバッファを安全に実装する
        方法というのは存在しないんですけども、
        X-TT 1.3 以降に入ってる fontcache はそこの処理でちょっといんちきしてまして、
        「一回の文字列描画分は fontcache から expire しない」
        という仮定がされてます。
        実際には大きな文字を描画するとこの仮定が崩れてしまうんですな。
        親コメント
        • by Anonymous Coward
          補足:

          > 今の X の仕組みだと

          「今の X のサンプル実装だと」ですね。具体的には、X11R4 以降の
          MIT/Opengroup/X.Org 配布のサンプル実装と、それから派生した
          ほとんどの実装(XFree86 も含む)です。

          実際には、Xserver を改造すれば不可能ではありません。
          • じゃあ、日本語みたいな文字数の多いフォントをTTで使うときの
            問題って、あくまでサーバの実装の話であって、
            プロトコルの欠陥じゃないんだ。
            本質的には問題解決のためにクライアントに手をいれる必要はないと言うことか。
            --
            # mishimaは本田透先生を熱烈に応援しています
            親コメント
  • by Dubhead (1033) on 2002年06月18日 19時09分 (#109573) ホームページ 日記
    Xが死ぬのは判りましたが、それってDoSと言うの?

    http://www.cert.org/tech_tips/denial_of_service.html
    に出てる定義には、あてはまらないように思います。
    • Re:DoS? (スコア:2, 参考になる)

      by mishima (737) on 2002年06月19日 11時28分 (#109904) ホームページ 日記
      > A "denial-of-service" attack is characterized by an
      > 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は本田透先生を熱烈に応援しています
      親コメント
  • このあいだ、Gimpでフォントセレクト画面をぐるぐると回して いたら、「ぶちん」という音と一緒に画面が真っ暗になって しまいました。

    そしてそのまま再起動。ちょと哀しかったです。 (うちはまだ Xfree3.3.6 ですから、別件?)

  • 言わんやマルチバイト文字をや。キッツイのは、html 冒頭で <font size=+1> とかしているページ。数分フリーズしてくれます。

    そんな悪意のない DoS って、罪に問えないよなー。

    • startx する時に -deferglyphs 16 するとかして、16bit Fontを予めレンダリング しないようにしてますか?
      これは、XF3.3.x+Netscape 4時代にはまりましたが…xfs-xttの説明ページかどっかで回避方法を見て、実行したらブラウザの起動時間が劇的に短縮できましたよ。

      親コメント
    • そんな悪意のない DoS って、罪に問えないよなー。

      もちろん。 意図的に X を使っているクライアントを User-Agent: で判断して、CSS でデカいフォントを指定していたりすれば、そこに意図するものがあって罪に問うことは可能ですが。 一般的にデカいフォントを表示すると、Window System がコケるなんていうのは、セキュリティホールであるか否かということ以前にWindow System そのものの問題だといわれて終わりそうな感じです。

      親コメント
  • 要するにだ (スコア:1, 興味深い)

    by Anonymous Coward on 2002年06月18日 9時50分 (#109175)
    X Window System を使う限りは MS-Windowsより駄目駄目だっ
    てだけのことだろ? OSが頑強で。。。っとか口ではいってても
    たかがウィンドウシステムごときに殺されてしまうのだったら
    意味ないじゃん。

    あらあら、しかしその割には大人しいものですね。MS-Windows
    で「大きなフォントを指定したら落ちる」なんてあったら即
    「スラド名物MS叩き祭」でしょうに。。。いつものの元気はどこ
    へいったの?(藁)
    • by SteppingWind (2654) on 2002年06月18日 11時54分 (#109270)

      このぐらいのレベルでは落ちる可能性は常に存在するというのがUNIX屋としては普通の感覚でしょう. Xでも10数年前からメモリリークが有るとか, メモリ解放機構がまずくて24時間運用には耐えられないとか言い続けられていたわけですから.

      でもって, その反省に基づいてNT3.51まではグラフィックサブシステムをカーネルから外し, たとえウィンドウシステムを使っていても安定性を損なわないようになっていたわけです. ところがNT4以降では速度性能を求めるあまりグラフィック機構をカーネルに組み入れてしまったわけで, これによって安定性が一気にWindows98クラスにまで下がってしまったという歴史的事実が有ります. このことはMSが, 少なくともその当時は, 安定性よりも見た目を重視する方針であることを如実に示していたわけであり, そのことはブルースクリーンを見まくった現場の技術者にとっては容易に消すことの出来ない不信感として記憶されたわけです.

      この改悪さえなければ, NTのウィンドウシステムでXに対して劣るところと言えばネットワーク透過性の無さぐらいでしょう. ただ, これが無いと本質的に不安定なウィンドウシステムを必ず本体の上で動かさなければならないということで, サーバとして使う場合には大きな欠点となってしまうわけですが.

      親コメント
      • 安定性が一気にWindows98クラスにまで下がってしまった

        これはさすがに誇張かと^^;

        さて、Microsoftの言い分では、「WindowsはGUIを大前提としたOSだから、グラフィックモジュールが死んでしまったらカーネルが生きていても大して変わらない」というものでしたね。

        ワークステーションやPC的な用途としては(つまりNT WS~2000 Pro系統)、NT4での仕様変更はまあしゃあないかなと。Windows9xと比べて余りにもパフォーマンスが低いの

        • >> 安定性が一気にWindows98クラスにまで下がってしまった
          > これはさすがに誇張かと^^;

          普通に考えればメモリ管理やファイルシステムが優秀なNT系がWin98並みってのはおかしいんですけど, NT4のころはまだグラフィックメーカのNT系のドライバに関するスキルが低かったせいか秘孔を突くことが多く, 本当に98並みかそれ以上に落ちまくっていました. サーバ等のメーカがセットで検証している構成なら問題はほとんど無いのですが, 安定した業務用クライアントを構成しようとしてNT4を使うとどつぼにはまるというのが多いパターンでした. こういう経験はWin2000ではほとんど無くなりましたね.

          本当にNTってSolaris並みにサーバ用としても素性のいいOSのはずなのに, GUIのおかげで足を引っ張られているように私は感じます.

          親コメント
          • 本当にNTってSolaris並みにサーバ用としても素性のいいOSのはずなのに, GUIのおかげで足を引っ張られているように私は感じます.

            なので、 サーバのグラフィックドライバで古いのを探してくるとか、 起動したらなるべくログオンしないとか、 いろいろ気を使わされてしまうわけですね。 知り合いにはAdministratorのシェルをCMD.EXEに変更している人がいました。

            何でこんな……、とはいつも思いますが。

            親コメント
          • NT4のころはまだグラフィックメーカのNT系のドライバに関するスキルが低かったせいか

            Windows2000から、Microsoftがドライバ開発者のために安定性試験用のツールなどを提供しはじめたのもあるでしょうね。

            NT系の安定性は、グラフィックカードで決まるような気もします。古いカー

    • by Average (3404) on 2002年06月18日 10時22分 (#109201) 日記
      政治的によくある回答としては「でもX-WindowはOSを道連れに死んだりしませんからなぁ。」というものだと思います。

      余談ですが、GUI=OSという誤った概念が普及したのがMS-Windowsの最大の罪だと思います。GUIって自分のイメージだと単なるシェルで、同じOSでも異なった実装があるし、あるべきだというのがワタシの感覚なんですが。
      --
      -----------------
      #そんなワタシはOS/2ユーザー:-)
      親コメント
      • by take0m (4948) on 2002年06月18日 10時38分 (#109213) 日記
        余談ですが、UNIX系含むLinuxで、X-Windowを使っていないGUIってあるのかな?GnomeとかKDEとかいってもX-Windowベースなんですよね?なんでしたっけSunのSunViewとかはX使っていないのかな?

        どこかにシェアの資料があるのかな?
        親コメント
      • by Anonymous Coward
        >政治的によくある回答としては「でもX-WindowはOSを道連れに死んだりしませんからなぁ。」というものだと思います。 それを言うとNT系でもシェル(explorer.exe)が落ちてもシェルだけ勝手に立ち上がってくるから似たようなもんだね。
        • by Anonymous Coward
          綺麗に落ちてくれる場合は自動的に立ち上がってくれることが
          殆どですけど、フリーズすると何も出来ずキツイですよね。

          unix系みたいに telnet で入って kill したいって思うことが
          たまにあります。
          • by take0m (4948) on 2002年06月18日 11時11分 (#109236) 日記
            ほとんどの場合は、CTRL+ALT+DELでexplorer.exeを落として、explorer.exeを実行するだけで済んでいますが・・・
            親コメント
          • by Anonymous Coward
            Windows2000もtelnetでログインできますよーだ。
            • by Anonymous Coward
              Win95なので telnetできませんし ewxplorerがフリーズする場面では CTRL+CLT+DELも受け付けないケースが Win2000の場合よりも多いです。
            • by Anonymous Coward
              問題は telnet で入ってから何ができるかなんでは ?
              Windows XP ではコマンドラインツールがいろいろろ強化されているとは聞きますが。
              • Re:要するにだ (スコア:1, 参考になる)

                by Anonymous Coward on 2002年06月18日 12時30分 (#109306)
                Windows XP ではコマンドラインツールがいろいろろ強化されているとは聞きますが。
                WindowsXPでのコマンドラインツールとほぼ同等な管理ツールは、Windows2000では製品のCDに入ってる「Support Tools」に含まれてます。 …オフトピですね^^;
                親コメント
      • by Anonymous Coward

        "X-Window"ってーのはありません。

        • X
        • X Window System
        • X Version 11
        • X Window System, Version 11
        • X11

        です。
        # man X してくらさい。

      • 余談ですが、GUI=OSという誤った概念が普及したのがMS-Windowsの最大の罪だと思います。
        Macは?^^;
    • by Anony_Mouse (5472) on 2002年06月18日 12時15分 (#109292)
      なにを言いたいのかよく分からないのですが、
      とりあえず、ウィンドウシステムが落ちたくらいで
      OSは全くダメージを負わないと思いますが。

      たかがウィンドウシステムごときで
      落ちるOSってのは、今やMS-Windowsくらいかと思います。

      >>たかがウィンドウシステムごときに殺されてしまうのだったら

      いや、だからこの文がおかしいのではないかと。

      殺されるのはウィンドウシステムであって、ウィンドウシステムが
      OSを殺すのはMS-Windowsくらいです。

      Mac OSXはどうなんでしょうか、、あれは、Darwinだけで
      起動できるとは聞いているのですが、AQUAのみの
      再起動?とかできるのでしょうか。
      親コメント
      • by Anonymous Coward
        次のバージョンのWindowsから抜いてもらいましょうかGUI部分
        .net serverもWeb Serverってバージョンでるみたいだし、
        組込用途もやっているみたいだし、
        可能性はあるかもしれませんね。
        • by Anonymous Coward
          OpenTalk での MSの人曰く "CE.NET だったらそういうの(GUI部を抜いたWindows)を提供できるかも。PC向けのは無理。"だそうで。
    • by Anonymous Coward
      みなさんX Window Systemに安定性とか快適性なんてものははじめから期待してないってことなのでしょう。
      • by Anonymous Coward
        もともとスケーラブルフォント、ベクトルフォントには 対応していないXに無理に機能を入れるから変になる。 ビットマップフォントだけで使っている分には 安定してて、快適ですよ。あ、見た目は悪いね。
    • by Anonymous Coward
      >X Window System を使う限りは MS-Windowsより駄目駄目だっ てだけのことだろ?

      X Windowを使うのは別に現在のMS-Windowsと比較してどっちが駄目かってだけで判断してるのではなくて、駄目なところが見つかったら速やかに修正される機構があるからじゃないの?
    • by Anonymous Coward
      > たかがウィンドウシステムごときに殺されてしまうのだったら
      意味ないじゃん。

      「たかがMozillaごときにX-Windowが殺される」だろ。
      • Re:要するにだ (スコア:2, すばらしい洞察)

        by route99 (7593) on 2002年06月18日 11時43分 (#109262) 日記
        > > たかがウィンドウシステムごときに殺されてしまうのだったら
        意味ないじゃん。

        > 「たかがMozillaごときにX-Windowが殺される」だろ。

        「たかがMozillaごときにXFree86が殺される」ですね。
        親コメント
    • by Anonymous Coward
      うちのMozillaはXだけでなく、
      Linuxまで道連れにしてくれます。
      Ctrl+Alt+{BS,Del}でもリセットできませんし、
      SSHでリモートから入ることすらできません。
      Mozillaさえ使わなければこういうことないんですがね。
      Mozillaが悪いのか、Xが悪いのか。はてはて。
      • by Anonymous Coward
        > Mozillaさえ使わなければこういうことないんですがね。
        > Mozillaが悪いのか、Xが悪いのか。はてはて。

        実はハードが悪いとかって事はありませんか?
        熱暴走とかメモリエラーとかでもこういう事は起こりますが……。
    • by Anonymous Coward
      > X Window System を使う限りは MS-Windowsより駄目駄目だってだけのことだろ?

      んー、昔の X 端末は、クライアントごとにメモリ使用量のアカウントを持ってたので、
      今回みたいな話に関しては別に X Window System の
      システムとしての問題じゃないと思うよ。

      そりゃ、/.J 名物の MS たたきは場合によっては見苦しいけど、
      君みたいな無知な /.J 叩きも見苦しいよ。
  • by Anonymous Coward on 2002年06月18日 0時36分 (#109031)
    以前から気になっている事なので、良かったら教えて下さい。
    potatoでTrueTypeを使えるようにしているのですが。
    Netscape4.7で観覧中、ウィンドウのリサイズとか、
    手前のウィンドウをぐりぐり動かすと、突然ネスケが
    終了してしまうのです。
    様子を見ていると、まるでアップデートイベントが積み重なって、
    処理し切れずに落ちるような・・・(元々マックユーザーなので
    用語が適切じゃないかもしれません。すみません)
    ひょっとしたら今回の話と似ているかも、とも思いましたが、
    いかがでしょうか。解決法など、御存じでしたら、
    御教示いただければ幸いです。
typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...