OracleVM 3.4:xen (OVMSA-2021-0014)

high Nessus プラグイン ID 150180

概要

リモートのOracleVMホストに1つ以上のセキュリティ更新プログラムがありません。

説明

リモートの OracleVM システムに、セキュリティ更新に対処するために必要なパッチが、欠落しています :

- 4.14.xによるXenに問題が見つかりました。PCI パススルーコードがレジスタデータを不適切に使用します。
Xen の MSI 処理で、デバイスハードウェアレジスタからリードバックされたサニタイズされていない値に作用するコードパスが特定されました。PCI 仕様に厳密に準拠したデバイスはこれらのレジスタに影響を与えるべきではありませんが、経験上、多くのデバイスがこれらの読み取りの結果に影響を与える可能性のある仕様外のバックドア操作を備えていることがわかっています。完全に信頼されていないゲストは、Xen をクラッシュさせて、システム全体のサービス拒否 (DoS) につながる可能性があります。権限昇格と情報漏えいの可能性を排除できません。PCI パススルーをサポートする Xen のすべてのバージョンが影響を受けます。x86システムにのみ脆弱性があります。ARMシステムには脆弱性はありません。PCI デバイスをパススルーしたゲストのみが、この脆弱性を利用できる可能性があります。問題を引き起こす可能性があるのは、仕様外(バックドア)の機能を備えたデバイスを通過するシステムのみです。経験上、このような仕様外の機能はありふれていることがわかっています。お使いのデバイスがこのような機能を備えていないと確信できない限り、備えているものと見なすことをお勧めします。(CVE-2020-25595)

- 4.14.xによるXenに問題が見つかりました。一度有効になったイベントチャネルが無効にならない可能性があるという制約の処理が不適切です。Xen のイベントチャネル操作の処理におけるロジックは、イベントチャネルが有効になると、ゲストの有効期間中は無効にならないことを前提としています。ただし、すべてのイベントチャネルのリセットなどの操作には、有効性を判断する際にチェックされる境界の 1 つを減らすことが含まれます。これにより、バグチェックがトリガーされ、ホストがクラッシュする可能性があります。権限のないゲストは、Xen をクラッシュさせて、システム全体のサービス拒否 (DoS) につながる可能性があります。4.4 以降の Xen の全バージョンが脆弱です。Xen バージョン 4.3 以前は脆弱ではありませんデフォルト数を超えるイベントチャネルを作成することが許可されている信頼できないゲストを持つシステムのみが脆弱です。この数は、ゲストのアーキテクチャとタイプによって異なります。32 ビットの x86 PV ゲストの場合、この数は 1023 です。64 ビット x86 PV ゲスト、およびすべての ARM ゲストの場合、この数は 4095 です。信頼できないゲストがこの数より少ない数に制限されているシステムは、脆弱ではありません。注意 : xl および libxl はデフォルトで max_event_channels を 1023 に制限しているため、xl、libvirt+libxl、または libxl に基づいた独自のツールスタックを排他的に使用し、max_event_channels を明示的に設定していないシステムは脆弱ではありません。(CVE-2020-25597)

- 4.14.xによるXenに問題が見つかりました。evtchn_reset() の競合状態があります。EVTCHNOP_reset (それ自体がゲストによるものである可能性がある) または XEN_DOMCTL_soft_reset (それ自体が XSA-77 でカバーされる) を使用すると、さまざまな内部仮定の違反につながる可能性があります。これにより、領域外メモリアクセスまたはバグチェックのトリガーが発生する可能性があります。特に、x86 PV ゲストは、権限をホストの権限に昇格できる可能性があります。ホストおよびゲストのクラッシュも可能であり、サービス拒否 (DoS) を引き起こす可能性があります。情報漏洩の可能性を排除できません。4.5 以降の Xen の全バージョンが脆弱です。Xen バージョン 4.4 以前は脆弱ではありません。(CVE-2020-25599)

- 4.14.xによるXenに問題が見つかりました。32 ビット x86 ドメインで領域外イベントチャネルが利用できます。いわゆる2レベルのイベントチャネルモデルにより、32ビットのx86ドメインで使用可能なイベントチャネルの数に、64ビットやArm(ビットネスのいずれか)のチャネルとは異なる制限が設定されます。32ビットx86ドメインは、共有された(ゲストとXen間の)情報構造のスペースが限られているため、1023チャネルのみを使用できますが、このモデルでは他のすべてのドメインが最大4095チャネルを使用できます。ただし、ドメインの初期化中のそれぞれの制限の記録は、実際にそれぞれのドメインプロパティを遵守する前に、ドメインが依然として64ビットのものと見なされているときに発生していました。ドメインが32ビットドメインとして認識される時点で、制限が更新されていませんでした。Xenにおけるこの誤動作により、他のドメインにサービスを提供している32ビットドメイン(ドメイン0を含む)は、実際にエラーが発生した場合に、成功するイベントチャネルの割り当てを観察する可能性があります。
その後、このようなイベントチャネルを使用すると、共有情報構造の他の部分が破損する可能性があります。権限のないゲストは、別のドメイン、特にドメイン0を不適切に動作させる可能性があります。これにより、システム全体でサービス拒否(DoS)が引き起こされる可能性があります。4.4 以降の Xen の全バージョンが脆弱です。Xen バージョン 4.3 以前は脆弱ではありません他のドメインにサービスを提供する x86 32 ビットドメインのみが脆弱です。ARM システムおよび x86 64 ビットドメインは脆弱ではありません。(CVE-2020-25600)

- 4.14.xによるXenに問題が見つかりました。evtchn_reset() / evtchn_destroy() にプリエンプションの欠如があります。特に、FIFO イベントチャネルモデルでは、ゲストが一度に多数のイベントチャネルをアクティブにすることができます。これらすべてを閉じるには (すべてのイベントチャネルをリセットするとき、またはゲスト後にクリーンアップするとき)、長い時間がかかることがあります。これまでのところ、適切な間隔でプリエンプションを行うための配置はなく、CPU はこれらの操作の処理にほぼ無制限の時間を費やすことができました。悪意ある、またはバグのあるゲストドメインカーネルがサービス拒否攻撃を仕掛け、システム全体に影響を与える可能性があります。原則として、Xen の全バージョンが脆弱です。バージョン 4.3 以前が脆弱であるかどうかは、基盤となるハードウェアの特性に依存します。(CVE-2020-25601)

- 4.14.xによるXenに問題が見つかりました。イベントチャネルにアクセス/割り当てする際に、メモリバリアがありません。イベントチャネル制御構造は、ポートが有効であると見なされている限り、ロックレスでアクセスできます。このようなシーケンスには、コンパイラとCPUの両方がアクセス順序を変更することを防ぐための適切なメモリバリア (例 : smp_*mb()) がありません。悪意のあるゲスト管理者がハイパーバイザーをクラッシュさせ、サービス拒否 (DoS) を引き起こす可能性があります。情報漏洩と権限昇格の可能性を排除できません。すべてのバージョンの Xen を実行するシステムが影響を受けます。システムが脆弱かどうかは、Xen の構築に使用される CPU とコンパイラに依存します。すべてのシステムにおいて、脆弱性の存在および範囲は、Xen の構築に使用されるコンパイラによって実行される正確な並べ替えに依存します。コンパイラを調査することができませんでした。その結果、どのコンパイラが脆弱なコードを (どのコード生成オプションで) 生成するかを特定できません。GCC のドキュメントは、並べ替えが可能であることを明確に示唆しています。CPU がメモリアクセスを並べ替えできる場合、ARM システムも脆弱になります。CPU ベンダーに問い合わせてください。 x86 システムは、コンパイラが再順序付けを実行する場合にのみ脆弱です。(CVE-2020-25603)

- 4.14.xによるXenに問題が見つかりました。x86 HVM vCPU 間でタイマーを移行する場合に競合状態があります。x86 HVM ゲストのタイマーを vCPU 間で移行するとき、使用されているロッキングモデルにより、同じゲストの 2 番目の vCPU がタイマーで操作して、取得していないロックを解放することが可能です。この問題の最も可能性の高い影響は、ハイパーバイザーのハングアップまたはクラッシュ、つまりサービス拒否 (DoS) です。すべてのバージョンの Xen が影響を受けます。x86システムにのみ脆弱性があります。ARMシステムには脆弱性はありません。x86 HVM ゲストのみがこの脆弱性を悪用できます。x86 PV および PVH は、この脆弱性を悪用できません。複数の vCPU を持つゲストのみがこの脆弱性を悪用できます。(CVE-2020-25604)

- 4.14.x までの Xen で問題が発見されました。これにより、x86 HVM および PVH ゲスト OS ユーザーが、ページごとの IOMMU TLB フラッシュの合体が不適切に処理されるため、サービス拒否 (データ破損) を引き起こしたり、データ漏洩を引き起こしたり、権限を取得したりする可能性があります。(CVE-2020-27671)

- 4.14.x までの Xen で問題が発見されました。これにより、2MiB および 1GiB のスーパーページが関係するメモリ解放後使用(Use After Free)につながる競合状態を悪用することで、x86 ゲスト OS ユーザーが、ホスト OS のサービス拒否を発生させ、データ破損を達成し、権限を取得する可能性があります。(CVE-2020-27672)

- 4.14.x までの Xen により、ゲスト OS 管理者が、電源/エネルギー監視インターフェイスのサイドチャネル攻撃(別名、Platypus 攻撃)により、機密情報 (ゲストの外部から AES キーなど) を取得する可能性があります。注:論理的に独立した修正が1つだけあり、Xen のそのような各インターフェイスのアクセス制御を変更します。(CVE-2020-28368)

- 4.14.x までの Xen で問題が発見されました。これにより、x86 HVM ゲスト OS ユーザーが、off-by-one のエラーが原因で、サービス拒否 (スタック破損) を引き起こしたり、データ漏洩を引き起こしたり、権限を取得したりする可能性があります。注:
この問題は、CVE-2020-27671 の不適切な修正によって引き起こされました。(CVE-2020-29040)

- 4.14.xによるXenに問題が見つかりました。どちらのxenstore実装も、xenstore監視イベントを報告する際に権限チェックを行いません。ゲスト管理者はroot xenstoredノードを監視できます。これにより、作成、変更、削除されたすべてのキーについて通知が行われます。ゲスト管理者は、特別な監視を使用することもできます。これは、ドメインが作成および破棄されるたびに通知を引き起こします。データには以下が含まれる場合があります:他の VM の数、タイプ、domid。ドライバードメインの存在と domid。仮想インターフェイス、ブロックデバイス、vcpus の数。仮想フレームバッファの存在とそのバックエンドスタイル (例 : VNC サービスの存在)。他のドメインの Xen VM UUID。ドメイン作成およびデバイスセットアップに関するタイミング情報。VM およびそれらのデバイスのバックエンドプロビジョニングでのいくつかのヒントもあります。監視イベントには、xenstoreに保存された値は含まれず、キー名のみが含まれます。ゲスト管理者は、他のゲストに関連する機密性の低いドメインおよびデバイスのライフサイクルイベントを観察できます。この情報により、全体的なシステム構成(他のゲストの数と一般的性質を含む)、および他のゲストの構成(他のゲストのデバイスの数と一般的性質を含む)に対するいくらかの洞察が得られます。この情報は、商業的に興味深いものであるか、他の攻撃を容易にする可能性があります。機密データの漏洩はないと考えられています。具体的には、VNC パスワード、ポート番号、ホストとゲストのファイルシステムのパス名、暗号化キー、ゲスト内データの漏洩はありません。(CVE-2020-29480)

- 4.14.xによるXenに問題が見つかりました。Xenstore ノードのアクセス権は domid ごとです。
残念ながら、ドメインが破壊されている場合、既存の付与されているアクセス権は削除されません。これは、同じ domid で作成された新しいドメインが、同じ domid を持つ以前のドメインから Xenstore ノードへのアクセス権を継承することを意味します。ゲストが破壊されると、/local/domain/<domid> より下のゲストのすべての Xenstore エントリが Xen ツールによって削除されるため、まだ実行中の他のゲストの Xenstore エントリのみが影響を受けます。たとえば、新しく作成されたゲストドメインが、以前に存在していたゲストドメインに属していた機密情報を読み取る可能性があります。Xenstore の実装 (C と Ocaml) の両方が脆弱です。(CVE-2020-29481)

- 4.14.xによるXenに問題が見つかりました。Xenstoredとゲストは、特定のプロトコルを使用する共有メモリページを介して通信します。ゲストがこのプロトコルに違反する場合、xenstoredはそのゲストへの接続を切断します。残念ながら、これはゲストをxenstoredの内部管理から単に削除することで行われます。その結果、@releaseDomainイベントの送信など、ゲストが破壊されたかのように同じアクションが引き起こされます。@releaseDomainイベントは、ゲストが削除されたことを表示しません。このイベントのすべてのウォッチャーは、すべてのゲストの状態をチェックして、削除されたゲストを見つける必要があります。ドメインxenstoredプロトコル違反により@releaseDomainが生成される場合、ゲストはまだ実行中であるため、ウォッチャーは反応しません。その後、ゲストが実際に破壊されると、xenstoredは内部データベースにゲストを保存しなくなります。そのため、@ releaseDomainイベントはそれ以上送信されません。これは、ゾンビドメインにつながる可能性があります。
イベントの欠落により、ゲストのメモリのメモリマッピングは削除されません。このゾンビドメインは、別のドメインが破壊された後にのみクリーンアップされます。これは、別の@releaseDomainイベントがトリガーされるためです。Xenstoreプロトコルに違反するゲストのデバイスモデルがstub-domainで実行されている場合、内部データベースからゲストを削除した後、xenstoredでメモリ解放後使用(Use After Free)が発生し、xenstoredがクラッシュする可能性があります。悪意のあるゲストは、自身の死後一定期間ホストのリソースをブロックできます。スタブドメインデバイスモデルを持つゲストは、最終的にxenstoredをクラッシュさせ、より深刻なサービス拒否(さらなるドメイン管理オペレーションの防止)をもたらす可能性があります。Xenstore の C バリアントのみが影響を受けます。Ocaml バリアントは影響を受けません。stubdom デバイスモデルの HVM ゲストのみが、深刻な DoS を引き起こす可能性があります。(CVE-2020-29483)

- 4.14.xによるXenに問題が見つかりました。Xenstore 監視が起動すると、監視を登録した xenstore クライアントが、監視をトリガーした変更された Xenstore エントリのパスと、監視の登録時に指定されたタグを含む Xenstore メッセージを受信します。xenstored との通信は、メッセージヘッダーとペイロードで構成される Xenstore メッセージを介して行われます。ペイロードの長さは 4096 バイトに制限されています。応答結果で xenstored へのリクエストのペイロードが 4096 バイトより長い場合、エラーが発生します。監視を登録するとき、ペイロードの長さの制限が、監視されたパスと指定されたタグを合わせた長さに適用されます。特定のパスの監視は、そのパスの下のすべてのノードでもトリガーされるため、監視イベントメッセージのペイロードは、監視の登録に必要なペイロードより長くなる可能性があります。非常に大きなタグを使用して (つまり、4096 バイト制限に近い登録操作ペイロードで) 監視を登録する悪意のあるゲストは、監視パスの下の Xenstore エントリに書き込むことで、ペイロード長が 4096 バイトを超える監視イベントを生成する可能性があります。これにより、xenstored でエラー状態が発生します。このエラーにより、NULL ポインターデリファレンスが発生し、xenstored がクラッシュする可能性があります。悪意のあるゲスト管理者が xenstored をクラッシュさせ、サービス拒否を引き起こす可能性があります。xenstored のクラッシュ後、ドメインは実行を継続しますが、管理操作は不可能になります。C xenstored のみが影響を受け、oxenstoredは影響を受けません。
(CVE-2020-29484)

- 4.14.xによるXenに問題が見つかりました。Xenによって維持されているvCPUごとのコントロールブロックマッピングの記録、およびコントロールブロックへのポインターの記録が逆になっています。消費者は、前者が初期化されると、後者も使用できる状態にあると想定します。悪意ある、またはバグのあるゲストドメインカーネルがサービス拒否 (DoS) 攻撃を仕掛け、システム全体に影響を与える可能性があります。(CVE-2020-29570)

Nessus はこの問題をテストしておらず、代わりにアプリケーションの自己報告されたバージョン番号にのみ依存しています。

ソリューション

影響を受けるxen/xen-toolsパッケージを更新してください。

参考資料

https://linux.oracle.com/cve/CVE-2020-25595.html

https://linux.oracle.com/cve/CVE-2020-25597.html

https://linux.oracle.com/cve/CVE-2020-25599.html

https://linux.oracle.com/cve/CVE-2020-25600.html

https://linux.oracle.com/cve/CVE-2020-25601.html

https://linux.oracle.com/cve/CVE-2020-25603.html

https://linux.oracle.com/cve/CVE-2020-25604.html

https://linux.oracle.com/cve/CVE-2020-27671.html

https://linux.oracle.com/cve/CVE-2020-27672.html

https://linux.oracle.com/cve/CVE-2020-28368.html

https://linux.oracle.com/cve/CVE-2020-29040.html

https://linux.oracle.com/cve/CVE-2020-29480.html

https://linux.oracle.com/cve/CVE-2020-29481.html

https://linux.oracle.com/cve/CVE-2020-29483.html

https://linux.oracle.com/cve/CVE-2020-29484.html

https://linux.oracle.com/cve/CVE-2020-29570.html

https://linux.oracle.com/errata/OVMSA-2021-0014.html

プラグインの詳細

深刻度: High

ID: 150180

ファイル名: oraclevm_OVMSA-2021-0014.nasl

バージョン: 1.4

タイプ: local

公開日: 2021/6/3

更新日: 2022/5/9

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: Medium

Base Score: 6.9

Temporal Score: 5.1

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

CVSS スコアのソース: CVE-2020-27672

CVSS v3

リスクファクター: High

Base Score: 8.8

Temporal Score: 7.7

ベクトル: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:U/RL:O/RC:C

CVSS スコアのソース: CVE-2020-29481

脆弱性情報

CPE: p-cpe:/a:oracle:vm:xen, p-cpe:/a:oracle:vm:xen-tools, cpe:/o:oracle:vm_server:3.4

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

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2021/4/27

脆弱性公開日: 2020/9/22

参照情報

CVE: CVE-2020-25595, CVE-2020-25597, CVE-2020-25599, CVE-2020-25600, CVE-2020-25601, CVE-2020-25603, CVE-2020-25604, CVE-2020-27671, CVE-2020-27672, CVE-2020-29480, CVE-2020-29481, CVE-2020-29483, CVE-2020-29484, CVE-2020-29570