FreeBSD - The Power To Serve

FreeBSDに対処すべき緊急性の高いゼロディ攻撃が明らかになってから2日後、同問題に対処するためのセキュリティアドバイザリが公開された。ほかに2つのセキュリティアドバイザリも発表されており、合わせて3つのセキュリティアドバイザリが公開されたことになる。特にゼロディ攻撃への対処となる"FreeBSD-SA-09:16.rtld"については迅速に対応を検討する必要がある。

項目 内容
識別名 FreeBSD-SA-09:16.rtld
CVE名 CVE-2009-4146, CVE-2009-4147
内容 rtld(1)における誤った環境変数の消去処理
対象 core / rtld
影響 FreeBSD 7.0以降のすべて
修正済み 8.0-STABLE, 8.0-RELEASE-p1, 7.2-STABLE, 7.2-RELEASE-p5, 7.1-RELEASE-p9
項目 内容
識別名 FreeBSD-SA-09:15.ssl
CVE名 CVE-2009-3555
内容 SSLプロトコルフロー
対象 contrib / openssl
影響 サポートされているすべてのFreeBSD
修正済み 8.0-STABLE, 8.0-RELEASE-p1, 7.2-STABLE, 7.2-RELEASE-p5, 7.1-RELEASE-p9, 6.4-STABLE, 6.4-RELEASE-p8, 6.3-RELEASE-p14
項目 内容
識別名 FreeBSD-SA-09:17.freebsd-update
内容 freebsd-update(8)における不適切なディレクトリパーミッション
対象 core / usr.sbin
影響 サポートされているすべてのFreeBSD
修正済み 8.0-STABLE, 8.0-RELEASE-p1, 7.2-STABLE, 7.2-RELEASE-p5, 7.1-RELEASE-p9, 6.4-STABLE, 6.4-RELEASE-p8, 6.3-RELEASE-p14

簡単にスーパユーザ権限へ昇格できてしまうゼロディ攻撃への対処はFreeBSD-SA-09:16.rtldとなる。パッチをあててrtld(1)を作り替えるか、amd64版でi386 rtldを使っている場合にはシステムの再構築が必要。ユーザがログイン可能なサービスを提供している場合には至急の対処を検討する必要がある。

rtld(1)はping(8)のようにsetuidビットが有効になったプログラムをロードする時は、LD_系の環境変数を無効になるように動作する。しかしこの判定処理に、無効にするのが機能しないパターンがあることが発見され、今回の問題につながった。無効にさせるべきLD_の指定が残っているためスーパユーザ権限でプログラムが実行され、結果的に権限以上の処理を許してしまっていた。

FreeBSD-SA-09:15.sslは2009年11月はじめごろから騒がれはじめたTLS/SSLの脆弱性に対処するもの。再ネゴシエーションの処理を無効にすることで対応としている。

パッチをあててSSLライブラリを再構築すればよい。amd64版のlib32はこの方法では再構築されないため、システムを再構築する必要がある。FreeBSD-SA-09:15.sslの修正を実施する場合にはSSLの再ネゴシエーションを使っていないことを確かめる必要がある。ほとんどのケースで再ネゴシエーションが使われることはないため、多くのケースでは問題がないという説明がある。