Scientific Linux セキュリティ更新:SL5.x i386/x86_64 の libvirt

medium Nessus プラグイン ID 61090

概要

リモート Scientific Linux ホストに 1 つ以上のセキュリティ更新がありません。

説明

libvirt ライブラリは、Linux などのオペレーティングシステムの仮想化機能を管理し、この機能との対話を行うための C API です。

libvirtd の RPC 呼び出し処理に、整数オーバーフローの欠陥が見つかりました。攻撃者が libvirtd への読み取り専用接続を確立できた場合、特別に細工されたパラメーターで virDomainGetVcpus() を呼び出してこの欠陥を発生させることで、 libvirtd がクラッシュする可能性があります。(CVE-2011-2511)

この更新は次のバグを修正します :

- libvirt は Scientific Linux 5.6 のバージョン 0.6.3 からバージョン 0.8.2 にリベースされました。libvirt 0.7.1 から 0.7.7 (0.7.x) のサーバーにトークする libvirt 0.8.2 クライアントによって確認されるエラーメッセージに影響を与えるマイナーな API 変更が、コード監査により見つかりました。libvirt 0.7.x サーバーが、libvirt 0.8.2 クライアントが VIR_ERR_CONFIG_UNSUPPORTED エラーを予期していたところに VIR_ERR_BUILD_FIREWALL エラーを送信できました。他の状況では、「ネットワークフィルターが無効です」というエラーが表示されるべきところであるにもかかわらず、libvirt 0.8.2 クライアントで「操作中にタイムアウトしました」というメッセージが表示されました。この更新により、バックポートされたパッチが追加され、libvirt 0.7.x サーバーで使用されるように libvirt 0.8.2 クライアントが API と相互運用されるようになります。これにより正確なエラーメッセージが確実に送信されるようになります。

- 開いているファイル記述子(_SC_OPEN_MAX)の最大数が FD_SETSIZE の値より大きくなると、libvirt は、設定値の境界外にあるファイル記述子にアクセスしてしまうため、libvirt がクラッシュする可能性があります。この更新により、オープンファイル記述水の最大数を FD_SETSIZE の値より大きくすることはできなくなりました。

- libvirt の競合状態が見つかりました。libvirt イベントハンドラーの配列が、一時的にリリースされたロックによりアクセスされました。稀に見られるケースですが、1 つのスレッドがこの配列にアクセスしようと試みたが、1 つ目のスレッドがロックを再取得する前に、2 つ目のスレッドがその配列を再割り当てしていた場合、1 つ目のスレッドにリードされ、開放されたメモリにアクセスするように試みられる可能性があります。これにより、libvirt がクラッシュする可能性があります。この更新により、libvirt は前の配列を参照しなくなり、結果として予期されているように動作するようになります。

- system_reset シグナルが QEMU モニターを通じて送信された場合、パススルーの NIC に接続されているゲストは、カーネルパニックを引き起こすことになります。この更新により、このようなゲストを期待通りにリセットできるようになります。

- Xen カーネルを使用するときに、rpmbuild コマンドが xencapstest テストで失敗しました。この更新により、Xen カーネルを使用するときに、rpmbuild の実行に成功するようになります。

- ディスクのホットアンプラグが行われるとき、ret が実際に 0 に設定される前に、ディスクのホットアンプラグ操作にて「ret >= 0」が qemuAuditDisk 呼び出しに渡されました。さらに、エラーパスが「cleanup」ラベルに早まってジャンプしました。結果としてホットアンプラグの失敗が監査されず、成功したホットアンプラグが失敗として監査されました。これは修正され、ホットアンプラグのチェックが現時点で期待通り動作するようになりました。

- フィルター更新のロックシーケンスと仮想マシン起動のロックシーケンスの間に、衝突が存在しました。
フィルターの更新が 1 台以上の仮想マシンで発生する場合、フィルターを参照している仮想マシンが起動されると、デッドロックが結果として起こりました。この更新により、いくつかの qemu ロックシーケンスがより柔軟性のあるものに変更され、デッドロックが発生しないようになります。

- qemudDomainSaveImageStartVM が、呼び出し側に通知せずに、受信ファイル記述子(fd)引数の一部を閉じました。
結果として二重に閉じることになり、ドメインの復旧エラーを引き起こす可能性があります。この更新により qemudDomainSaveImageStartVM シグネチャを変更し、二重に閉じることがないようにできます。

この更新により、次の拡張機能も追加されます:

- libvirt Xen ドライバーが現時点で 1 つ以上のシリアルポートをサポートするようになりました。

- Xen ドメインにおける高精度イベントタイマー(HPET)の有効化と無効化が現在利用可能です。

libvirt の全ユーザーは、この脆弱性に対処し、これらのバグを修正し、これらの拡張機能を追加する、この更新をインストール必要があります。この更新を有効にするには、更新済みパッケージのインストール後、 libvirtd を再起動(「service libvirtd restart」)する必要があります。

ソリューション

影響を受ける libvirt、libvirt-devel および/または libvirt-python パッケージを更新してください。

参考資料

http://www.nessus.org/u?cdfd2d0d

プラグインの詳細

深刻度: Medium

ID: 61090

ファイル名: sl_20110721_libvirt_on_SL5_x.nasl

バージョン: 1.7

タイプ: local

エージェント: unix

公開日: 2012/8/1

更新日: 2021/1/14

サポートされているセンサー: Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 5.9

CVSS v2

リスクファクター: Medium

基本値: 4

ベクトル: CVSS2#AV:N/AC:L/Au:S/C:N/I:N/A:P

脆弱性情報

CPE: x-cpe:/o:fermilab:scientific_linux

必要な KB アイテム: Host/local_checks_enabled, Host/RedHat/release, Host/RedHat/rpm-list, Host/cpu

パッチ公開日: 2011/7/21

脆弱性公開日: 2011/8/10

参照情報

CVE: CVE-2011-2511