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

GitHubに脆弱性、第三者が権限のないリポジトリへのアクセス権を取得可能 30

ストーリー by hylom
Railsユーザーはご注意を 部門より
insiderman 曰く、

3月4日、GitHubに脆弱性が発見された(GitHubのブログ)。同日中に問題は修正され、現在これによる影響をチェックしているとのこと。

この問題は、GitHubが使っているRuby on Railsに含まれていたMass assignmentという脆弱性を使ったもので、実例としてこれを用いて不正な日付でIssueを登録したり、本来なら登録する権限がないSSH公開鍵の登録が行われていた模様。これはRuby on Railsの問題であり、Issueで議論が行われている

Ruby on Rails側の問題ということで、Ruby on Railsを使っているほかのサイトでも同様の問題が発生する可能性があるようだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by tamo (19654) on 2012年03月05日 22時24分 (#2111861) ホームページ 日記

    日本語情報はこれがピカイチですね。
    http://blog.sorah.jp/2012/03/05/mass-assignment-vulnerability-in-github [sorah.jp]

  • by Anonymous Coward on 2012年03月05日 22時50分 (#2111876)

    どうせ恥も外聞もないRubyist達は、「対策したからこれ使ってね」と、またもや過去との互換性が希薄な3.3的なRailsを出して
    「最新版では対策した、移行しないおまえらが悪い」と、それ以外のバージョンのRailsについては完全にスルーするに10000ペリカ

    そう、Rails3がRedmineを切り捨てた時のように…
    そして「Rubyも1.9しか面倒見ねえ、1.8とか古いの使うなら自分らで勝手にやれや」宣言した時のように…
    あいつらは、いつもそう

    そうか…
    これで名実共にRedmineはオワコンになったわけだ…
    感慨深いね…

    • by Anonymous Coward

      Ruby界隈の事は良く知らんのだけど、Redmineを1.9に対応させようという動きは無いの?

    • by Anonymous Coward

      恥も外聞もないより、厚顔無恥が適当じゃないか

    • by Anonymous Coward

      どうしてこう、消費者根性が抜けない輩が跋扈するんだろう?

      直接の知り合いでもない開発者に履かせてもらったオムツが汚れても泣き喚くことしか出来ないくせに、訳知り顔のヒョーロンカ口調で難詰するなんざ、並の神経じゃできないな

      • by Anonymous Coward

        開発者連中が成果とともに害も巻き散らしているから

        • by Anonymous Coward

          「成果とともに害も巻き散らしている」っていう二律背反に書いてる最中に気づかないもんかね?

          どちらを選択するかはあなたの判断次第じゃないの?

      • by Anonymous Coward

        同感。
        お客様はオープンソース物を使うんじゃないよ。迷惑だから。

        • by Anonymous Coward

          (OSIの定義する)オープンソースでは、誰々は使うなといった差別的なライセンスは禁止されてるんだよ
          知らねえでやんの(笑)

        • by Anonymous Coward

          開発者を非難するのはどうかと思うが、例えば Linux 上ではオープンソース物以外はほとんど生き残れないと思う。
          変化が激しすぎて開発リソースを割けないから。

          という現実を理解した上で意図して変化させてるなら、まあいいんじゃないの。
          Linux ではどんどん変化させると公言してたしね。

      • by Anonymous Coward

        パッチを提案したのに「そんなものはアプリの開発者が当然気をつけることだ」とかほざいてrejectしまくったのはどこの誰だよ。

  • by Anonymous Coward on 2012年03月06日 0時16分 (#2111917)

    Mass assignmentは機能の名前です。Rails自身の脆弱性というわけではありません。
    不用意な使い方をしたアプリに脆弱性が生まれます。
    とはいえ、ふつうにRailsを使うと紛れ込む可能性は高いのでRailsの問題ではあります。

    • by Anonymous Coward

      perlのopen 関数みたいな物か。 [ipa.go.jp]
      便利ではあるが、注意深く使わないと危険な目に合う。
      しかも、あんまり意識されてなかったので、初心者がついやってしまう落とし穴と。

    • by Anonymous Coward

      Rubyは読み書きできないんで、憶測でものを言うけど、結局fool proofがしっかりしてるかどうかってことでしょ?デフォルト設定で危ないんだったら、その辺は直した方がいいんじゃないかな。

      Cの標準ライブラリもバージョン管理して、strcpy()は禁止できればよかったのにな。

      • by Egtra (38265) on 2012年03月09日 1時53分 (#2114070)

        Cの標準ライブラリもバージョン管理して、strcpy()は禁止できればよかったのにな。

        C11ではgetsがなくなりましたね。strcpyは依然として存在しますが。

        バージョン管理と言えば、GCCだと-stdオプションで似たようなことが実現できていると言えないでしょうか。CではなくC++ですが、-std=c++11などを指定せずにC++11で追加された新しいヘッダをインクルードすると「このヘッダはC++11用だ」とコンパイルエラー(正確にはプリプロセッサ、たしか#error使っているので)になります。

        親コメント
    • by Anonymous Coward

      register_globals みたいなものか。
      attr_accessible とかいうので保護すれば大丈夫らしいけど、
      それを知らなきゃ即脆弱性に繋がる、脆弱性の温床というわけですね。
      脆弱性そのものじゃないけど、これを有用なものであるかのように「機能」と呼ぶのもおこがましい。
      他に何かいい呼び方はあったかな。「問題」っていうのもいまいち深刻さが弱いし。

  • この問題はActiveRecordのモデルに適切にサニタイズされていないHTTPパラメータを渡すことで発生するもので、
    要するにXSSやSQL Injectionと同じです。

    Railsの脆弱性ではありませんし、本質的にRails固有のものは何もありません。
    いつもの通り、「ユーザから渡されたパラメータを信用しない」という基本的なルールを墨守することが大切で、
    GitHubがそれをやっていなかったというだけのことです。

    ここぞとばかりにRuby叩きが発生していますが、register_globalsとは全然レベルが違います。
    Railsのインターフェイスデザインにまずいところはなにもありません。
    逆に言えば、完全な解決策もありません。attr_accessibleは助けになりますが、
    これは、例えるならば、「XSS対策のために、デフォルトでHTMLへの埋め込み文字列をエスケープする」というのに近く、
    ユーザパラメータのサニタイズが不要になるものではありません。

    繰り返しになりますが、ActiveRecordのモデルに対するメソッド呼び出しは最終的にデータベースクエリになるということを頭において、
    「ユーザから渡されたパラメータを引数にするときはサニタイズする」ことを忘れないことです。
    これは他のWebフレームワークでもまったく同じです。

    • by Anonymous Coward

      サニタイズいうなキャンペーンどこいった

      ところで。
      多くの人が間違いを犯すシステムは脆弱なシステムです。
      基本ルールを守るというのは重要ですが、守りやすい、わかりやすいシステムであるというのも重要です。
      驚きは最小限に。でしたっけ?

      • by Anonymous Coward

        驚き最小の法則ってのは、昔の Ruby の開発ポリシーでしたね。

        Rails とは全然関係ないし、確か今の Ruby でもその方針はとくに重要視していない。

        • by Anonymous Coward on 2012年03月06日 13時31分 (#2112220)

          間違えてる人が時々いるけど、「驚き最小の法則」がRubyの開発ポリシーだったことはないよ。
          RubyのMLで言い出した人間がいるというだけ。

          親コメント
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...