ページ内ジャンプ:

アレゲなニュースと雑談サイト

mhattaによる 2008年02月11日 10時00分の掲載
確かにHotfixだ部門より。

Account-mochi Coward 曰く、

本家/.の記事より。Linuxカーネルのバージョン2.6.17から2.6.24.1までのvmsplice()システムコールに穴があり、それを利用するとroot権限が取得できてしまうようだ。検証用コードも存在する。

対策としては今の所vmsplice()を外してカーネルを再コンパイルすることしかないらしい。穴を突いて動作中のカーネルをオンメモリパッチするアレゲな解決方法も既に公開されている。

関連ストーリー

この議論は賞味期限が過ぎたので、保存されている。 新たにコメントを書くことはできない。
表示オプション しきい値:
  • 127.0.0.1 (33105) : 2008年02月11日 10時18分 (#1294901) 日記
    Linuxカーネル2.6.17が公開されたのが、まぁぐぐると一瞬で分かるのですが
    昨年……じゃないや一昨年の2006年6月17日ですね。(いまだに2007年脳)
    2.6.24.1は今年の2月8日(ってまだ3日前か)にリリースされた最新版。

    で、The Linux Kernel Archives [kernel.org]を見ると2.6.25 RC版が出ている模様。
    参考:2.6.25 RC版のChangelog [kernel.org]
    これには本件の修正も含まれているようです。

    以下にChangelogから該当部分と思われる部分を、メールアドレス等の行は削除して引用。

    >commit 8811930dc74a503415b35c4a79d14fb0b408a361
    >Date: Fri Feb 8 08:49:14 2008 -0800
    >
    > splice: missing user pointer access verification
    >
    > vmsplice_to_user() must always check the user pointer and length
    > with access_ok() before copying. Likewise, for the slow path of
    > copy_from_user_mmap_sem() we need to check that we may read from
    > the user region.
  • Vine Linux=勝ち組 (スコア:3, おもしろおかしい)

    Anonymous Coward : 2008年02月11日 10時24分 (#1294902)
    やった、kernel 2.6.16だからこの問題関係ない!
  • youichi (329) : 2008年02月11日 20時51分 (#1295159)
    手元のマシンで検証用のコードをコンパイルして実行してみました。

    Debian etch
    > uname -a
    Linux mercury 2.6.18-6-686 #1 SMP Wed Jan 23 03:23:22 UTC 2008 i686 GNU/Linux
    > ./a.out
    -----------------------------------
      Linux vmsplice Local Root Exploit
      By qaaz
    -----------------------------------
    [+] mmap: 0x0 .. 0x1000
    [+] page: 0x0
    [+] page: 0x20
    [+] mmap: 0x4000 .. 0x5000
    [+] page: 0x4000
    [+] page: 0x4020
    [+] mmap: 0x1000 .. 0x2000
    [+] page: 0x1000
    [+] mmap: 0xb7ecd000 .. 0xb7eff000
    [+] root
    #

    Debian etch (x64)
    > uname -a
    Linux uranus 2.6.18-5-vserver-amd64 #1 SMP Wed Sep 26 05:17:25 UTC 2007 x86_64 GNU/Linux
      ./a.out
    -----------------------------------
      Linux vmsplice Local Root Exploit
      By qaaz
    -----------------------------------
    [+] mmap: 0x100000000000 .. 0x100000001000
    [+] page: 0x100000000000
    [+] page: 0x100000000038
    [+] mmap: 0x4000 .. 0x5000
    [+] page: 0x4000
    [+] page: 0x4038
    [+] mmap: 0x1000 .. 0x2000
    [+] page: 0x1000
    [+] mmap: 0x2b94e846e000 .. 0x2b94e84a0000
    Illegal instruction
    >

     x32の方は、はあっさりrootになれました。
     x64のほうは大丈夫でした。コードがx64に対応していないのか、x64では問題がないのか、vserverカーネルだからこのコードでダメなのかはわかりません。
  • 酷い脆弱性なのに (スコア:2, すばらしい洞察)

    Anonymous Coward : 2008年02月11日 10時26分 (#1294903)
    MSではないと言うだけで叩かれない…
  • 応急処置 (スコア:2, 参考になる)

    momekabi (26516) : 2008年02月11日 15時29分 (#1295036)
    オンメモリパッチは同じマシンでも上手く行ったり行かなかったり不安定のようで失敗するとフリーズしました。
    $ uname -rm
    2.6.18-53.1.6.el5 i686

    https://bugzilla.redhat.com/show_bug.cgi?id=432251#c10 [redhat.com]
    のカーネルモジュールをロードしたところ、私の環境では安定しているようです。
    • Re:応急処置 (スコア:5, 参考になる)

      annoymouse coward (11178) : 2008年02月11日 16時15分 (#1295055) 日記
      その"オンメモリパッチ"は ネタ ですよ? workaround にもならないので,即刻外すべきです

      やっていることは vmsplice のシステムコールを ret命令(0xC3) で つぶしているだけです
      仮にそのパッチが当たっても,システムコールが正常に動作しないので,アプリケーションは正常に動作しません.

      アプリケーションの誤動作などでファイルが壊れるまえに,カーネルをアップグレードしましょう.
      • Re:応急処置 (スコア:3, おもしろおかしい)

        127.0.0.1 (33105) : 2008年02月11日 17時43分 (#1295088) 日記
        参考になりそうな雰囲気のことが何となく書いてあれば、読み手の
        参考になった気分をつつく事ができるのです。
        しかしモデレーションはあくまで主観にもとづいてつけられる
        ポイントですし、嘘を嘘と見抜けない人にもモデレート権は与えられるのです。

        なので「参考になる」モデは正しくは「参考になる(かもしれない)」
        ポイントなのです。「面白おかしい」は確かに面白おかしく思った人が
        いたということなので、「(一部の人には)面白おかしい」なのです。

        いや、頼むからこの投稿には参考になるをつけないで! 全然参考にならないから!!
      • 1個のコメント が現在のしきい値以下です。
    • 1個のコメント が現在のしきい値以下です。
  • mamoru (617) : 2008年02月12日 3時24分 (#1295229)
    RPM 系を使っていたときよく手動でやってたけど、そんなに面倒ではないです。
    deb 系だともっと簡単。

    でも、なにか事情があるとかじゃなければ、普通はディストリビュータの更新を
    信頼して任せとけば十分ですよ。

    だって、何万、何十万というユーザーが、わざわざ手動でパッチをあてたりしな
    くてもなくてもいいように、パッケージ管理システムというものが存在している
    わけだし。

    それに、手動でやると致命的なミスを犯すこともありますしね。
  • 浜の真砂は尽きるもののたとえですヨ?
    「石川や 浜の真砂は 尽きるとも 世に盗人の 種は尽きまじ」のこと?無数にあって尽きることのない「浜の真砂」が、仮に尽きたとしても、という意味だから、尽きないものの喩として使ってもおかしくはありません。
  • それにつけても金の欲しさよ

    #あれ、違う?
  • 3個のコメント が現在のしきい値以下です。