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

Bugzillaに未解決の脆弱性が発見される 19

ストーリー by hylom
脆弱性を突いて脆弱性情報を得る 部門より
あるAnonymous Coward 曰く、

オープンソースのバグトラッカーソフト「Bugzilla」に、アクセス権限を無視して非公開設定となっている情報を閲覧できるという脆弱性が発見された。これにより、未修正の脆弱性のような一般公開されていないバグ情報が閲覧されてしまう可能性があるという(TheRegisterKrebs on SecuritySlashdot)。

具体的には、本来必要である認証プロセスを経ずにBugzillaにアクセスできるアカウントを作成できてしまうという。さらに、特定のメールアドレスを使ってアカウントを作成することで、管理者権限でBugzillaにログインすることも可能だという。これを利用し、サイバー犯罪者などが脆弱性情報を不正に得ることが可能なってしまうそうだ。

Mozillaによれば、この脆弱性は2.23.3以降のすべてのバージョンに存在するとのこと。Mozillaは9月29日にバグを開示し、月曜日にはパッチファイルを提供している。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2014年10月09日 9時44分 (#2690842)

    認証無視で管理者権限アカウントとか
    脆弱性ってより裏仕様の
    バックドアばれちゃったみたいなはなしですね

    本当にバグだったんだろうか

    • Re:バックドア? (スコア:4, 参考になる)

      by Anonymous Coward on 2014年10月09日 10時19分 (#2690862)

      オンラインでソースが見られないのでよくわかりませんが、本家のアナウンスを見ると

      The 'realname' parameter is not correctly filtered on user account creation, which could lead to user data override.

      とあるので、「realname」というパラメータの入力値のチェック漏れでSQLインジェクションか何かを許してしていたのではないでしょうか。
      普通の脆弱性ではないかと。

      親コメント
      • by Anonymous Coward on 2014年10月09日 10時31分 (#2690868)

        高木センセーの仰ってる通り、サニタイズとかじゃなくてパラメータライズドクエリを使え、と。
        こんなメジャーなシステムでそんな初歩的なミスをしていたなんて、ちょっと驚きですね。

        #ふと思ったんですが、プリペアドステートメントとパラメータライズドクエリ、どっちがメジャーな呼び方なんでしょうかね。

        親コメント
        • Re:バックドア? (スコア:4, 参考になる)

          by Chiether (20555) <spamhere@chiether.net> on 2014年10月09日 11時13分 (#2690892) 日記

          プリペアードステートメント … 埋め込む概念や方式のこと。
          プレースホルダ … 埋込む箇所のこと。
          パラメータライズクエリ … プリペアードステートメントで作られたと保障されるクエリそのもの(最終的な形)。

          少なくとも「プレースホルダ」と「プリペアドステートメント」の概念は、
          PHPのドキュメントでは、そう区別されています。
          http://php.net/manual/ja/pdo.prepared-statements.php [php.net]
          >より成熟したデータベースの多くは、プリペアドステートメントという 概念をサポートしています。
          >(略)
          >この例は、name および value を名前つきプレースホルダで置き換えて INSERT クエリを実行します。

          上記ドキュメントを使わせてもらうと
          "INSERT INTO REGISTRY (name, value) VALUES (:name, :value)" … プリペアードステートメント
          :name や :value …… プレースホルダ
          $stmt->prepare()を利用したexecute();によって発行される "INSERT INTO REGISTRY (name, value) VALUES ('one', 1)" … パラメータライズクエリ(かな?)

          こういうものだと私は思ってました。

          --
          ==========================================
          投稿処理前プレビュー確認後書込処理検証処理前反映可否確認処理後……
          親コメント
          • by Anonymous Coward

            プリペアードステートメント
              - mysqlだと準備済みステートメントと訳されてますね。PREPARE構文で事前に準備されたステートメント(SQL文)を表すと思います。プレースホルダを含まなくてもPREPARE構文使えばプリペアードステートメントでしょう。

            プレースホルダ
              - 場所といえば場所だけど、転じて「?」を表す語となってることも多いと思う。マニュアル的にはパラメータマーカという方が多いみたい。パラメータマーカ→DBで使ってる、プレースホルダー→より一般的な言い方、といったところ?

            パラメタライズドクエリ
              - パラメータマーカを含むプリペアードステートメントを実際に用いて行うクエリ。具体的にはパラメータ付きのEXECUTE構文、またはその準備を含む一連の行為を意味する、ってところ?

        • by SteppingWind (2654) on 2014年10月09日 14時36分 (#2690984)

          Oracleから入った私としてはPreparedStatementなんですが, これを使う理由としてはセキュリティ上の理由よりも, 実行時コンパイルとその再利用による性能向上が主目的でした.

          # なにしろ性能が1桁違ってきますから, オンライントランザクション系なんかでは最重要のチューニングポイントで

          こうした実行時コンパイル形式の実装をとっているDBMSでは, これが同時にパラメータの型制限になるわけですが, そうでない場合, 例えば渡されたパラメータを保存されているSQL文に字句展開して評価するような実装だと, セキュリティ的な効果は無いと以前に指摘されたことがあります. 具体的にどのDBMSがそうなのかは知らないのですが, 一般的な対策としては, パラメータ方式に頼らずに, サニタイズも併用するのが吉みたいです.

          親コメント
        • by Anonymous Coward

          追記。
          プレースホルダ、って言い回しもありますねぇ。

          なんかこうやって言い回しが色々ありすぎるのも、パラメータライズドクエリが普及しない原因なのかなぁ。

          検索し辛いし、言い回しが複数あると知らない人は頭の中にはてなが浮かぶでしょうし。

          #私は直感的に意味がわかる、パラメータライズドクエリ派です。

          • by HomuraAkemi (46038) on 2014年10月09日 11時09分 (#2690888) 日記

            ODBCのAPIだと、SQLPrepare()を実行してから、SQLBindParameter()を実行するのですが、
            私が最初に知った言い方はプリペアドステートメントで、パラメタライズドクエリを知ったときは、
            へー、そういう言い方もあるのか、、と思ったものです。

            プレースホルダというと、DB用語ではない何か別のものを指すような印象を受けます。
            fooとかhogeなどメタ構文変数の様な感じがします。

            というわけなので、私はプリペアドステートメント派です。

            親コメント
            • by Anonymous Coward

              広義には後から実際のものを入れるために取っておく場所のことでしょうから
              広告やプレゼンのレイアウトレイアウトとか、そういうものを指すと思いますが、
              データーベースに適用しても全然違和感はないですね

              浩光センセーも言ってますしね
              http://www.atmarkit.co.jp/fsecurity/column/ueno/60.html [atmarkit.co.jp]

              MS的にはパワーポイント用語ですか・・・

            • by Anonymous Coward

              > プレースホルダというと、DB用語ではない何か別のものを指すような印象を受けます。
              > fooとかhogeなどメタ構文変数の様な感じがします。
              置換されるもの、でいいんじゃないですか?
              printf のフォーマット文字列中の %s とかもそうですよね。

              • by Anonymous Coward

                「場所取り」って言ってください。

      • by Anonymous Coward on 2014年10月09日 12時15分 (#2690939)

        SQLとか関係なくて、Perl独特の罠にひっかかっちゃったかんじです。
        http://blog.gerv.net/2014/10/new-class-of-vulnerability-in-perl-web-ap... [gerv.net]

        親コメント
        • by Anonymous Coward

          これだから型の弱い処理系は嫌いだ。

      • by Anonymous Coward

        https://bugzilla.mozilla.org/show_bug.cgi?id=1075578 [mozilla.org]
        http://bzr.mozilla.org/bugzilla/4.0/revision/7791 [mozilla.org] (のexpand all)
        を読むと、scalarをつけるタイミングの話みたいですね。

        GETのクエリに同じものがあると(?foo=1&foo=2&foo=3)……ってことのようです。

  • by Anonymous Coward on 2014年10月09日 10時45分 (#2690878)

    済みません。ゴミコメントで。

  • by Anonymous Coward on 2014年10月09日 15時50分 (#2691030)

    タレこみでは「ゼロデイの脆弱性」としており、記事公開時点で修正版が既にリリースされているのに「未解決」とはどういうことなんだか…

    • by Anonymous Coward

      Bugzilla に(よって管理されているプロジェクトの)未解決の脆弱性が
      (Bugzilla のバグによって,アクセス権限のない人たちに)発見される,
      ということなのですよ!何も間違っていません!

    • by Anonymous Coward

      未解決ってのは公表時の話でしょ。
      ゼロデイだとゼロデイ攻撃って用法が多いから、すでに攻撃されてる脆弱性ととられる可能性も。

typodupeerror

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

読み込み中...