6月版 新機能のバトルフィールド「linux-staging」登場


小崎資広
2008/6/30

アイコン rootkitかと思ったら……

 「今日、ファイアウォールスクリプトをスタートさせようとしたら、何か変なメッセージ出てきちゃって……」と始まる問い合わせメールをFedeさんが投稿しました。見てみると確かに、これまで見たことのないメッセージです。

May 27 20:38:15 kaoz ip_tables: (C) 2000-2006 Netfilter Core Team
May 27 20:38:28 kaoz Netfilter messages via NETLINK v0.30.
May 27 20:38:28 kaoz nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
May 27 20:38:28 kaoz ctnetlink v0.93: registering with nfnetlink.
May 27 20:38:28 kaoz ClusterIP Version 0.8 loaded successfully
May 27 20:38:28 kaoz mm/memory.c:127: bad pmd ffff810000207238(9090909090909090).
Fedeさんが投稿した「変なメッセージ」

 それに対してすかさずArjan van de Venが、「909090は機械語で『nop nop nop』って意味だよ。これはしばしば、rootkit(ルートキット)がシステムを乗っ取るときに使われる。ルートキットチェックを強くお勧めするよ」と返信しました。

 ところが、ほぼ同時期に、ほぼ同一内容のバグ報告をしている人がいることが分かりました。どうやらこれはルートキットではなさそうだと調査したところ、x86_64のカーネルのスタートアップコードにバグがあり、ゴミが表示されていることが判明しました。なぜ「nop」と表示されたかというと、そのゴミがコード部分にあったためです。ごくごく普通のコード中にアライメントを合わせるために埋め込まれていた「nop」がたまたま見えているだけだったようです。

 この修正はパニックもしないし、セキュリティ問題でもないのですが、「絶対にルートキットと勘違いするユーザーがいるから」という理由で、-stableツリーである2.6.25.6にマージされました。それにしても人騒がせなバグですね。

アイコン 「ドライバを開放せよ」、138人の開発者が声明

 6月22日、Greg K-HはLinux Foundationからの声明として、「Position Statement on Linux Kernel Modules」と題するポジショニングペーパーをアナウンスしました。

 これはGreg K-Hと彼に選ばれた138人のコアデベロッパー(注7)による共同声明です。クローズドソースのカーネルモジュールは有害であり(注8)、Linuxのエコシステムやユーザーに悪影響を与えている。これをオープンソースにすることで、ベンダにとってもコストカットや顧客離れを防ぐというメリットがあると訴えるもので、クローズドソースのベンダにオープンソースに転向してもらうことを目的としています。

 背景には、前述のkerneloops.orgにおいても、[external]とタグが打たれたプロプライエタリドライバが原因となるバグが上位を寡占していることから分かるように、品質改善のネックはカーネル本体ではなくなっていることが挙げられます。

 カーネルの安定化を推進しているGregとしては、クローズドソースドライバを何とかしなければ、この問題は先に進まないという思いがあるものと推測します。

 特に最近は、デスクトップかいわいでビデオカードドライバが安定性を下げていることがたびたび報告されています。これを機に、ドライバのオープンソース化が進めば、ユーザーにもメリットがありそうです。

注7:日本人も数人入っているので、興味がある方はリストを見てみるといいでしょう。

注8:余談ですが、この手のペーパーは「Considered harmful」という言葉から文章が始まるのがお約束となっており、この文章もそれにのっとっています

-stableの進ちょく

 2.6.25が出た直後ということもあり、5月、6月にはstableリリースが8回もされました。ただ、6月に入ってからのリリースはセキュリティフィックスを含まないバグ修正の集約ばかりで、やや落ち着きを取り戻しているといえます。

■2.6.25.y:

  • 2.6.25.1(5月1日):Greg K-H
    ・dnotifyとcloseの間のレース状態による脆弱(ぜいじゃく)性を修正(CVE-2008-1375)
    ・tehuti: ioctlの権限チェックを関数先頭に移動(CVE-2008-1675)
    ほか、40パッチ
  • 2.6.25.2(5月6日):Greg K-H
    ・fcntl_setlk() のメモリオーダレースバグを修正(CVE-2008-1669)
  • 2.6.25.3(5月9日):Greg K-H
    ・utimensat()の権限チェック漏れを修正
    ほか、19パッチ
  • 2.6.25.4(5月15日):Greg K-H
    ・OHCI: ハイバネーションからの復帰のレグレッションを修正
    ・md: raid5のリペア操作の問題を修正
    ・{nfnetlink, ip, ip6}_queue: パケットを大きくして詰め直した場合にパニックしてしまう問題を修正
    ほか、38パッチ
  • 2.6.25.5(6月6日):Chris Wright
    ・asn1: BERエンコーディングの整合性チェックを追加(CVE-2008-1673)
  • 2.6.25.6(6月9日):Chris Wright
    ・cpufreq: TransmetaのCPUでNULLポインタアクセスをしていた問題を修正
    ・XFS: メモリを壊してしまう問題を修正
    ・x86: bad pmd ffff810000207xxx(9090909090909090) というメッセージが表示される問題を修正
    ・x86: 割り込みからPGEフラッシュを防ぐ修正(KVM使用時にパニックしてしまう問題の修正)
    ・x86: TSCのキャリブレートが失敗した場合にパニックしてしまう問題を修正
    ・x86かつCONFIG_PREEMPT=yにおいて、アプリケーションのFPUスタックを壊してしまう問題を修正
    ・CIFS: UNCパス名のprefixを修正(注9
    ほか、50パッチ
  • 2.6.25.7(6月16日):Greg K-H
    ・create_write_pipe()において、alloc_file()が失敗したときに二重freeをしてしまう問題を修正
    ・ecryptfs: mutex_unlock()を忘れている個所があった問題を修正
    ・ecryptfs: notify_change()呼び出し時にmutexで保護するのを忘れていた問題を修正
    ・CONFIG_CIFS_DFS_UPCALLがONのとき、CIFSのマウント時にパニックする問題を修正
    ・brd ramdiskに"rd"の別名を定義(これによりramdiskは、rdという名前だと決め打ちしている古いシステムを救える)
    ほか、47パッチ
  • 2.6.25.8(6月21日):Greg K-H
    ・x86: AMDのFamily 10H/11Hでmwaitを使用しないようにした
    ・x86-64:copy_from_user()の戻り値が間違っていたのを修正
    ほか、16パッチ

(以上、敬称略)

2/2

Index
Linux Kernel Watch 6月版
 新機能のバトルフィールド「linux-staging」登場
  Page 1
 新ツリー「linux-staging」発進!
 MMに激震、Lockless pagecacheがとうとうマージ
 ext3より遅い? ext4のパフォーマンス
 コンパイラの最適化がカーネルをパニックさせるとき
Page 2
 rootkitかと思ったら……
 「ドライバを開放せよ」、138人の開発者が声明
 -stableの進ちょく

連載 Linux Kernel Watch


 Linux Squareフォーラム Linuxカーネル関連記事
連載:Linux Kernel Watch(連載中)
Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします
連載:Linuxファイルシステム技術解説
ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する
特集:全貌を現したLinuxカーネル2.6[第1章]
エンタープライズ向けに刷新されたカーネル・コア
ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する
特集:/procによるLinuxチューニング[前編]
/procで理解するOSの状態

Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する
特集:仮想OS「User Mode Linux」活用法
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
Linuxのカーネルメンテナは柔軟なシステム
カーネルメンテナが語るコミュニティとIA-64 Linux
IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間