
Linuxカーネルに11年以上前から存在する特権昇格の脆弱性「Dirty COW」が修正される 51
ストーリー by headless
汚牛 部門より
汚牛 部門より
Linuxカーネルに11年以上前から存在するバグが修正された。このバグは以前から知られていたものだが、最近になって特権昇格の脆弱性(CVE-2016-5195)であることが判明し、エクスプロイトの存在も確認されて「Dirty COW」と名付けられていた(メーリングリストでのアナウンス、
V3の記事、
The Registerの記事、
Ars Technicaの記事)。
Dirty COWはLinuxカーネルのサブシステムがcopy-on-write(COW)を処理する際に競合を起こし、プライベートな読み取り専用メモリーマッピングへの書き込みが可能になるというもの。このバグを特権のないローカルユーザーが利用することで、特権の昇格が可能になる。Linus Torvalds氏は11年前にバグの修正を試みているが、s390アーキテクチャーで問題が発生して取り消されていたとのこと。
RedHatではDirty COWの深刻度を2番目に高い「Important」としており、任意コード実行の脆弱性などと比べて低い評価になっている。しかし、発見者のPhil Oester氏によれば、エクスプロイトは少なくとも2007年から存在しており、侵入されたサーバーも発見されているという。エクスプロイトの実行が容易ということもあり、迅速な対応が求められるとのことだ。
脆弱性はLinuxカーネル4.8.3/4.7.9/4.4.26 LTSで修正されており、DebianとUbuntuもアップデートがリリースされている。Red Hatのアップデートはまだのようだが、Bugzillaで緩和策を紹介している。
Dirty COWはLinuxカーネルのサブシステムがcopy-on-write(COW)を処理する際に競合を起こし、プライベートな読み取り専用メモリーマッピングへの書き込みが可能になるというもの。このバグを特権のないローカルユーザーが利用することで、特権の昇格が可能になる。Linus Torvalds氏は11年前にバグの修正を試みているが、s390アーキテクチャーで問題が発生して取り消されていたとのこと。
RedHatではDirty COWの深刻度を2番目に高い「Important」としており、任意コード実行の脆弱性などと比べて低い評価になっている。しかし、発見者のPhil Oester氏によれば、エクスプロイトは少なくとも2007年から存在しており、侵入されたサーバーも発見されているという。エクスプロイトの実行が容易ということもあり、迅速な対応が求められるとのことだ。
脆弱性はLinuxカーネル4.8.3/4.7.9/4.4.26 LTSで修正されており、DebianとUbuntuもアップデートがリリースされている。Red Hatのアップデートはまだのようだが、Bugzillaで緩和策を紹介している。
fixedの意味 (スコア:3, すばらしい洞察)
https://lkml.org/lkml/2016/10/19/860 [lkml.org]
バグ直したつもりで逆にエンバグ・リグレスしたとき、
それをアンドゥしたことをフィクスと言ってはいけない。
そんなことをすれば、二回もフィクスしたんだから大丈夫と思ってしまう。
だからアンドゥするときにはバグフィクスなどという穏当な言葉ではなく
思いつく限りの罵倒をログに残すことが問題の解決策なのである。
Re:fixedの意味 (スコア:1)
すくなくとも fix じゃなくて undo なり revert を使う方がいいですね
Re:fixedの意味 (スコア:1)
Re: (スコア:0)
Mozillaはバックアウトされたチェンジセットにうんこマーク(U+1F4A9)をつけるようになったね
Android (スコア:1)
って、3.4系や3.6系が*未だに*使われてるケースが多い気がするんですが、直るんでしょうかね(´・ω・`)
そもそも、カーネルのUpstreamが改善されても、それが実際の端末に反映されるには相当な時間がかかる訳で…
Re: (スコア:0)
3.6はLTSでごぜーますし。収束済みのものもディストロの提供元が責任を持ってバックポートすれば済む話ですな。
まあアンドロイドはグーグルが収束させたものでもメーカーがバックポートするかもしれないしグーグルがパッチを出したものでもメーカーが無視するかもしれないし。
Re: (スコア:0)
3.6ってkernel.orgにないけどLTSなの?
ところで、3.2や3.10はこの件でアップデートされてるけど、3.4はないみたいね。
なぜだろう?
Re: (スコア:0)
LTSと一口に言っても、バージョンによって管理してる人が違う。
Gregさんが管理してる奴が一番早く修正される。
rE:rE:rE:のキタロウ (スコア:0)
Linuxベースのアプライアンス製品となるファイアウォールとかこの問題にひかかっててたいへんずら
Re: (スコア:0)
ローカルユーザとしてログインできることがそもそもレアケースなので
サービスを提供する系のサーバはそれほど影響はない気がします
一方、OS環境を提供する系のレンサバとかは大慌てでしょうね
この件はローカルユーザーが俺一人なら安全? (スコア:2)
悪意を持ったやつがログインしなくても、
ローカルユーザーが実行するプログラムにこれが含まれていればアウト?
それとも、ローカルユーザーが悪意をもってごにょごにょしないと
成功しないよタイプなんでしょうか。
Re: (スコア:0)
Herokuとかの、DB接続用(PostgreSQLだったかな)にローカルユーザを渡してるようなサービスも大慌てなんじゃないですかね…
Re: (スコア:0)
あとはwebadmin的な奴ですかね?
Re: (スコア:0)
その手のサービスは一応契約者の身元確認を取っているのでまあ通常の危機対応でしょ。
悪意のあるユーザーが悪意を持ってコードを実行しても誰がやったかわかるわけだから。
見つかってないだけでリモートから任意のコードを実行できる脆弱性はあるんでしょうしそういうのと組み合わせられると大変面倒なことになるけれど。
オブソリートなのか今回は成功したのか (スコア:0)
s390で今回修正されたカーネルを使用しても問題ないのでしょうか。
Re: (スコア:0)
that (最初の間違った修正) was then undone due to
problems on s390 by commit f33ea7f404e5 ("fix get_user_pages bug").
In the meantime, the s390 situation has long been fixed, and we can now
fix it by checking the pte_dirty() bit properly (and do it better). The
s390 dirty bit was implemented in abf09bed3cce ("s390/mm: implement
software dirty bits") which made it into v3.9. Earlier kernels will
have to look at the page state itself.
Re: (スコア:0)
Linux カーネルって、あったま良い人たちが、
少なくとも設計に関してはきちんと把握して作ってるのかと思ったら、
案外そうでもないんですかね?動けば良いで、訳も分からないまま
突っ走ってるんでしょうか。何か怖い…。
Re: (スコア:0, おもしろおかしい)
あったま悪い人が心配するこっちゃないよ
Re: (スコア:0)
えー、心配くらいさせてくださいよ。
で、内情とかご存じなんですか?
Re: (スコア:0)
メーリングリストに登録すればわかるようになりますよ。脆弱性に関して言えばどこも似たようなものですし。オープンソースだと内部のぐだぐだまで外から丸見えってだけ。
そもそもきちんと把握して作っていたらソフトウェアに脆弱性なんて発生しませんし。
Re: (スコア:0)
メ、メーリングリストですか。でもたぶん英語なんですよね。私にはハードルが高いっす。
情報ありがとうございます。そうですか、どこも似たようなものですか。
一旦修正を試みたがダメだったってところが引っかかったんですよね。
初めから全てを把握するのは、もちろん無理でしょうけど、直そうとしてダメだったところが。
あと、BSD 系は Linux よりしっかりしてるなんて話をちらほらと聞いたりしますので、
やっぱり Linux はそのへんが弱いんだろうかと思った次第です。
Re:オブソリートなのか今回は成功したのか (スコア:1)
あと、BSD 系は Linux よりしっかりしてるなんて話をちらほらと聞いたりしますので、
やっぱり Linux はそのへんが弱いんだろうかと思った次第です。
設計、実装に関してLinuxカーネル+GNUより「よく考えて作ってる」ようにも見えますが、
seekdir()のバグが長いこと放置されてた話なんかもあります。
http://developers.srad.jp/story/08/05/09/2114204/ [developers.srad.jp]
あと、いずれもシステムがでかくなったのと裏腹に、「目玉の数」の割合は減り続けてるんじゃないかなぁ
Re: (スコア:0)
OpenSSLはBSD系でしょ。構造上セキュリティ的に強いか弱いかってのはこの手の脆弱性とはあまり関係がないし。
BSD系が話題にならないのはシェアが小さいから攻撃者にも狙われないし利用者の関心も薄いのかもしれない。
Re: (スコア:0)
訂正:
何となく「あったま良い人」を漠然と小馬鹿にできるいい機会なのかなと思った次第です。
Re: (スコア:0)
もしかして: OpenBSD
Re: (スコア:0)
トンボBSDのことだろ。英語だとなんか強そうだし。
Re: (スコア:0)
こめんなさい、「あったま良い人」が小馬鹿にしているように読めましたか。
雑談サイトなんで、あまり硬くならずに書こうと思っただけで他意はないです。
Re: (スコア:0)
> OpenSSLはBSD系でしょ。
???
Re: (スコア:0)
日本語にするとすごく弱っぽい
Re: (スコア:0)
人を馬鹿にしても自分が馬鹿じゃなくなるわけじゃないのにね。
Re: (スコア:0)
> あったま良い人たちが、
> 少なくとも設計に関してはきちんと把握して作ってるのかと思ったら
「伽藍とバザール」って昔ESRが書いたドキュメント読めば
Linux界隈の開発手法がわかるよ
あとリリースに際してどのような手順を現在踏んでいるのか?とか
バグ報告等はどのように管理されているのか?とか
ちょっと調べれば日本語でもいろいろ出てくるだろうに
はっきり言って興味ないことに「恐怖する振り」をしていのって
アホっぽいからやめた方が良いよ
Re: (スコア:0)
情報ありがとうございます。「伽藍とバザール」で検索してみました。
私の拙い理解力で正確に理解できているか自信はありませんが、
1.とにかく何かできたらすぐリリース
2.情報は何でもかんでも公開
3.それぞれの開発者の裁量が大きい
4.絶対的な統制は取られていない
のように読み取れました。コードの変更速度も速く、
Linux を細部にわたって把握するのは難しいってことですかね。
Re: (スコア:0)
開発手法に関して言えばBSDもだいたいLinuxと同じ手法でやってますけどね。
おれの心はcombat stress reaction状態。
Re: (スコア:0)
どんなにあったま良い人でも、バグつぶしみたいな地味でつまらない仕事はしたくないのが本音なんだよ。そしてつまらない仕事はしたくなきゃしなくてもよいのがLinuxの良い所なんだよ。どういうわけか世の中にはバグがどうしても気になってしかたない偏執狂がいて、彼らが勝手に直してくれるから、心置きなく面白そうなコードだけいじってね。
Re: (スコア:0)
レッドハットやカノニカルやスーゼや富士通やクレイは偏執狂だから直しているわけではないけれど。
ソニーやアップルやオラクルは恩返ししているのだろうか。
Re: (スコア:0)
ごめんごめん。忘れてたね。お金もらっているから気乗りはしないけど仕事で仕方なくやっている人もいたね。設計とか構造とか、めんどくさいことは後で考えればいいから、とにかく作って動かしてみてね。それがLinuxのいいところなんだから。
Re: (スコア:0)
Linuxごときに何期待してんの?
wwwwwww
あのパワーの由来 (スコア:0)
「スーパー牛さんパワー」の牛は何かと思っていたのですが、copy-on-writeのことだったのですね!
# 妄想
Re:あのパワーの由来 (スコア:2)
暗黒のCOWでsuせずともrootの力が手に入るぞ
// だからこちらに来い、ルーク...
Re: (スコア:0)
> 「スーパー牛さんパワー」の牛は何か
Gatewayじゃないのか(おっさん
君は (スコア:0)
君はバグを2つ持っている...
Re:君は (スコア:2)
君はCOWを1つ持っている。
1つだと思っていた。s390で問題が発生してundoされるまで。
正確には、あなたはCOWをNつ持っている。そのCOWが幾つであるかは、誰にもわからない。
Re: (スコア:0)
> OSSなら安全(笑)
まだ、そんなアフォなこと信じて疲弊してんだw