FreeBSD Daily Topics

2010年1月8日セキュリティアドバイザリZFS、ntpd(8)、bind(8)および不具合通告FreeBSD-8.0

security-advisory

FreeBSD-SA-10:03.zfs

ZFS ZILのプレーバック処理において不適切なパーミッション状態に復元してしまう問題があることがsecurity.freebsd.org/advisories/FreeBSD-SA-10:03.zfs.asc"">FreeBSD-SA-10:03.zfsにおいて報告されました。ZFSではメモリ内での書き込みトランザクションをZIL (ZFS Intent Log)に集約し、同期が要求される段階でディスクへ書き出しています。システムクラッシュやパワーフェールが発生したら、ZFSはZILを調査し同期するために必要となるまだ実施されていないトランザクションを処理して一貫性を保つようにします。

今回このZILにおいて記録されたログが属性に到達していないケースでは、setattrトランザクションのリプレーで不適切な属性を設定する可能性があることがわかりました。具体的にはシステムクラッシュやパワーフェールが発生した場合に07777が設定されたファイルができてしまう可能性があるとういもので、結果的に閲覧されてはいけないファイルが閲覧されてしまったり、特権獲得ができてしまう可能性があります。

ZFSを利用している場合にこの問題を一時的に回避する方法はなく、カーネルを再構築してシステムを再起動するか、最新のセキュリティブランチへシステムを更新する必要があります。この問題の影響を受けたとみられるファイルは次のようなコマンドで調査できるだろうという説明がFreeBSD-SA-10:03.zfsにあります。該当するファイルは適切なパーミッションへ戻す必要があります。

07777が設定されたファイルを調査するコマンド例
# find / -perm -7777 -print0 | xargs -0 ls -ld
FreeBSD-SA-10:02.ntpd

システム時刻をリファレンスサーバの提供している時刻に同期するデーモンntpd(8)にDoS攻撃の脆弱性があることがFreeBSD-SA-10:02.ntpdで報告されました。ntpd(8)はmode 7(MODE_PRIVETEリクエスト)をrestrict/noqueryセクションまたはrestrict/ignoreセクションに記載されていないソースアドレスから受け取った場合には、イベントをログとしてディスクに記録するほか、mode 7 error resposeを返送します。

この仕組みを悪用しそうしたソースアドレスを詐称してmode 7(MODE_PRIVETEリクエスト)を送信されると、ntpd(8)デーモン間でリクエストとレスポンスが巡回してCPU時間の消費、ディスクの消費、通信帯域の消費といったDoS攻撃が可能になります。ファイアウォールで設定することでこうした問題を一時的に回避することができます。提供されているパッチを適用してntpd(8)デーモンをリビルドして再起動するか、システムを最新のセキュリティブランチに更新することでこれら問題を回避できます。

FreeBSD-SA-10:01.bind

BIND named(8)デーモンにDNSキャッシュ汚染の脆弱性が発見されたことがFreeBSD-SA-10:01.bindにおいて報告されています。named(8)にChecking Disabled (CD)フラグをセットしたDNSSEC (DNS Security Extensions)レコードリクエストが送信されると、named(8)は検証されていないレスポンスをキャッシュします。このレスポンスはCDフラグをセットしていないほかのクライアントに対して返っていくことになるため、ここでDNSキャッシュ汚染が実現されることになります。

この問題を一時的に回避するにはBIND named(8)のDNSSEC検証機能を無効にすればよいのですが、もちろのその場合にはDNSSECのレコード認証機能も使えなくなります。問題を解決するには提供されているパッチを適用してnamed(8)デーモンをリビルドして再起動するか、システムを最新のセキュリティブランチに更新する必要があります。

errata-notice

FreeBSD-EN-10:01.freebsd

FreeBSD 8.0-RELEASEの性能改善や安定性向上のための不具合情報がFreeBSD-EN-10:01.freebsdとして公開されました。NFSクライアント関連の不具合、ZFSの不適切なチェックによるパニック、マルチキャストリグレッションとパニック、SCTP関連のパニック、'/.'で終わる引数がrename(2)システムコールに渡された場合のパニックといった問題が修正されています。パッチを適用してカーネルを再構築するか、システムを最新のセキュリティブランチに更新することで対処できます。

おすすめ記事

記事・ニュース一覧