Ubuntu Weekly Topics

2019年11月22日号 Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応

この記事を読むのに必要な時間:およそ 7.5 分

Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応

また新しいCPU脆弱性がやってきました。Intelの今年2度目の定期アドバイザリで公表された,TAA(TSX Asynchronous Abort)と呼ばれるこの攻撃手法INTEL-SA-00270; CVE-2019-11135は,半年前のMDS(としてグループにされた攻撃手法のひとつ,ZombieLoadのバリエーションで,TSX命令をターゲットとするものです。TSX命令はCascade Lake以降(=第8世代Coreシリーズ/第2世代Xeon Scalable Processsorシリーズ以降)のIntel製CPUに搭載されています。おおむね最新世代のプロセッサであり,言い換えると『この脆弱性に限っての話であれば』⁠この2年ぐらいのマシンでなければそのまま忘れてもよい」ということになります。

Ubuntuでも業界全体の動き注1にあわせて対応が進められており同時に公表された他の脆弱性への対応とあわせてナレッジベースが準備されています。

注1
こうした業界全体での取り組みは,現在ではLinuxカーネル開発でプロセスとして取り込まれ脆弱性発見時にどのような動きをするべきか,明確な対応プロシージャとして対応が定められています。

TAAはMeletdown/Spectreに近似する「本来読めないメモリの中身を読み出す方法として機能する」タイプの脆弱性です。ソフトウェア的な回避方法はMDSとほぼイコールで,MDSの緩和策がそのままTAAを抑止する効果があります。また,CPU内部の処理アプローチに強く依存するため,Intel以外のCPUでは影響はありません。

このことから,TAA(ZombieLoad v2)への対応は以下の3つに分かれます。

  • Intel製CPUを利用していない:特に気にする点はありません。
  • Intel製CPUを利用しており,かつ、TSXをサポートしているモデルである:今回の攻撃のメインターゲットです。カーネル・マイクロコードのいずれかでの対応が必要です。また,副作用として一定の性能劣化が発生します。同時に発見されたMCEPSCへの対応も別途必要かもしれません。
  • Intel製CPUを利用しているが,TSXをサポートしていない:TAAそのものは気にする必要はありません。ただし,同時に発見されたMCEPSCへの対応が別途必要かもしれません。

……とりあえず,なんだかよく分からない場合は,Ubuntuでは「カーネルとマイクロコードパッケージを更新して再起動」と理解しておいてください(このアップデートにはLivepatchは用意されていないので,再起動が必須です⁠⁠。詳細を理解しており,そのシステムで信頼できないコードが実行されない確証が得られている場合,パフォーマンスを優先するためにTAA回避をオフにする選択肢もありえるかもしれません。

ただし,これで対応完了というわけにはいきません。⁠この脆弱性に限っての話であれば』という話であることを思い出してください。今回のアドバイザリ群では,比較的ネーミングがキャッチーなTAA/ZombieLoad v2と同時に,いくつかの脆弱性も報告されています。

もっとも注意するべきはMCEPSC(Machine Check Exception on Page Size Changes; INTEL-SA-00210; CVE-2018-12207で,未対処な環境でこの脆弱性を悪用することで,⁠信頼できないゲストOS」が動作しうる環境(≒いわゆるクラウド環境)において,ゲスト側から仮想ホストをクラッシュさせることが可能です。この問題によるクラッシュの場合,クラッシュ後にMSRを確認することで,IA32_MCi_STATUS.MCACODに0150Hが格納されている特徴点があります注2⁠。MCEPSCはLinuxの文脈ではiTLB multihitと呼ばれます。

注2
「MCEが起きたが0150H以外の値が格納されていた」という場合は単にハードウェアが壊れているか,極度に不運な事案が起きたと判断するべきです。⁠Machine Check Exceptionが起きる」というのは「何かが起きた」程度の意味しかなく,格納されている値によって対応を変更する必要があります。一方,0150Hが発生している場合に必ずMCEPSCが悪用されたことを意味するわけではなく,カーネルの実装がなにかおかしい,という可能性もあります。MCEPSCはあくまで,⁠ゲストOSから任意にMCE:0150Hを誘発できる」という問題でしかありません。なお,実行にはゲストOS側のroot権限が必要なため,⁠ゲストOSが乗っ取られた」というシナリオでも悪用される可能性はありえます。
  • Intel製CPUを利用していない:特に気にする点はありません。
  • Intel製CPUを利用している:一部のAtom以外は影響を受ける可能性があります。信頼できない仮想マシンが実行される可能性がある場合は対処を行ったほうが良いかもしれません。

対応のためには仮想ゲストをホストする側のOSカーネル(や,ハイパーバイザー)の更新が必要ですが,こちらもUbuntuでは対応済みであり,⁠カーネルパッケージを更新して再起動する」というのが通常の対応となります。こちらにはマイクロコードの更新は関係ありません。

……ここまではCPU脆弱性に関する対応ですが,あわせて,CPUに内蔵されたiGPUに関する2つの脆弱性にも対処が必要ですCVE-2019-0155/INTEL-SA-00242CVE-2019-0154/INTEL-SA-00260⁠。これらも対処としてはカーネルの更新が必要,というパターンになります。また,Intel製NICやWIFIドライバについてもIPMIを搭載しているサーバーの場合はそちらの更新も必要な可能性があります注3⁠。とはいえ一般的なクライアント的な用途であれば,とりあえず「カーネルを更新すればOK」という発想でもそこまで大きな問題はないでしょう。

注3
ここで注意するべき点は,今回の問題は「Intel脆弱性出し過ぎ」という話ではなく,⁠Intelは真面目に脆弱性情報を出しているからこれだけの問題がリストされている」という観点を持つべきである,ということです。他ベンダとの単純な比較はほとんど意味がありません。

その他のニュース

注4
ノートPCはこの秋の新製品としてリリースされています。デスクトップ向けはおそらく来年となるはずです。

今週のセキュリティアップデート

usn-4171-3, usn-4174-1:Apportの再アップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005180.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005182.html
  • Ubuntu 19.10・19.04 ・18.04 LTS・16.04 LTS・14.04 ESM用のアップデータがリリースされています。
  • Report.add_proc_environ関数の互換性が失われていました。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4174-1:HAproxyのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005181.html
  • Ubuntu 19.10・19.04 ・18.04 LTS ・16.04 LTS用のアップデータがリリースされています。CVE-2019-18277を修正します。
  • 特定のHTTPリクエストに対してRequest Smugglingが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4175-1:Nokogiriのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005183.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS用のアップデータがリリースされています。CVE-2019-5477を修正します。
  • 悪意ある入力を行うことで,コマンドインジェクションが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4165-2:Firefoxの再アップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005184.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS用のアップデータがリリースされています。
  • Firefox 70.0.1のUbuntuパッケージ版です。
  • 対処方法:アップデータを適用の上,Firefoxを再起動してください。
usn-4176-1:GNU cpioのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005185.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS・14.04 ESM・12.04 ESM用のアップデータがリリースされています。CVE-2019-14866を修正します。
  • 悪意あるファイル名を利用することで,tarファイルに本来期待しえない情報が含まれる場合がありました。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4177-1:Rygelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005186.html
  • Ubuntu 19.10用のアップデータがリリースされています。
  • 特定の環境において,本来期待されていないファイルが共有されてしまうことがありました。
  • 対処方法:アップデータを適用の上,セッションを再起動(一度ログアウトして再度ログイン)してください。
usn-4178-1:WebKitGTK+のセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005187.html
  • Ubuntu 19.04・18.04 LTS用のアップデータがリリースされています。CVE-2019-8625, CVE-2019-8720, CVE-2019-8769, CVE-2019-8771を修正します。
  • 対処方法:アップデータを適用の上,WebKitGTK+を利用しているアプリケーションを再起動してください。
  • 備考:upstreamのリリースをそのまま利用したパッケージです。
usn-4179-1:FriBidiのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005188.html
  • Ubuntu 19.10・19.04用のアップデータがリリースされています。CVE-2019-18397を修正します。
  • 特定のバイト列を含めたテキストを処理させることで,スタックベースオーバーフローを誘発させることが可能でした。DoSまたは,特異な状況を仮定した場合に任意のコードの実行に繋がると考えられます。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4180-1:Bashのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005189.html
  • Ubuntu 12.04 ESM用のアップデータがリリースされています。CVE-2012-6711を修正します。
  • 悪意ある入力を行うことで,DoSないし任意のコードの実行が可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4181-1:WebKitGTK+のセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005190.html
  • Ubuntu 19.10・19.04・18.04 LTS用のアップデータがリリースされています。CVE-2019-8812, CVE-2019-8814を修正します。
  • 対処方法:アップデータを適用の上,WebKitGTK+を利用しているアプリケーションを再起動してください。
  • 備考:upstreamのリリースをそのまま利用したパッケージです。
usn-4182-1:Intel Microcode update
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005191.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005192.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS・14.04 ESM用のアップデータがリリースされています。CVE-2019-11135, CVE-2019-11139を修正します。
  • Zombieload v2対策を含むマイクロコードです。
  • 対処方法:アップデータを適用の上,システムを再起動してください。カーネルの更新があわせて必要です。
usn-4183-1, usn-4183-2:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005194.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005204.html
  • Ubuntu 19.10用のアップデータがリリースされています。CVE-2018-12207, CVE-2019-0154, CVE-2019-0155, CVE-2019-11135, CVE-2019-15791, CVE-2019-15792, CVE-2019-15793, CVE-2019-16746, CVE-2019-17666を修正します。
  • Zombieload v2対策を含むカーネルです。※ 当初のリリースのカーネルには{CVE-1019-0155}の制約を回避できる問題があったため,対応バージョンに注意が必要です。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4184-1, usn-4184-2:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005195.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005205.html
  • Ubuntu 19.04・18.04 LTS用のアップデータがリリースされています。CVE-2018-12207, CVE-2019-0154, CVE-2019-0155, CVE-2019-11135, CVE-2019-15098, CVE-2019-15791, CVE-2019-15792, CVE-2019-15793, CVE-2019-17052, CVE-2019-17053, CVE-2019-17054, CVE-2019-17055, CVE-2019-17056, CVE-2019-17666を修正します。
  • Zombieload v2対策を含むカーネルです。※ 当初のリリースのカーネルには{CVE-1019-0155}の制約を回避できる問題があったため,対応バージョンに注意が必要です。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4185-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005196.html
  • Ubuntu 18.04 LTS・16.04 LTS用のアップデータがリリースされています。CVE-2018-12207, CVE-2019-0154, CVE-2019-0155, CVE-2019-11135, CVE-2019-15098, CVE-2019-17052, CVE-2019-17053, CVE-2019-17054, CVE-2019-17055, CVE-2019-17056, CVE-2019-17666を修正します。
  • Zombieload v2対策を含むカーネルです。※ 当初のリリースのカーネルには{CVE-1019-0155}の制約を回避できる問題があったため,対応バージョンに注意が必要です。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4186-1,usn-4186-2, usn-4186-3:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005197.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005200.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005207.html
  • Ubuntu 16.04 LTS・14.04 ESM用のアップデータがリリースされています。CVE-2018-12207, CVE-2019-0154, CVE-2019-0155, CVE-2019-11135, CVE-2019-15098, CVE-2019-16746, CVE-2019-17052, CVE-2019-17053, CVE-2019-17054, CVE-2019-17055, CVE-2019-17056, CVE-2019-17666, CVE-2019-2215を修正します。
  • Zombieload v2対策を含むカーネルです。※ 当初のリリースのカーネルには{CVE-1019-0155}の制約を回避できる問題があったため,対応バージョンに注意が必要です。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4187-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005198.html
  • Ubuntu 14.04 ESM用のアップデータがリリースされています。CVE-2019-11135を修正します。
  • Zombieload v2対策を含むカーネルです。※ 当初のリリースのカーネルには{CVE-1019-0155}の制約を回避できる問題があったため,対応バージョンに注意が必要です。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4188-1:Linux kernelのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005199.html
  • Ubuntu 12.04 ESM用のアップデータがリリースされています。CVE-2019-11135を修正します。
  • Zombieload v2対策を含むカーネルです。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4185-2, usn-4185-3:Linux kernel (Azure)のセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005201.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005206.html
  • Ubuntu 14.04 ESM用のアップデータがリリースされています。CVE-2018-12207, CVE-2019-11135, CVE-2019-17052, CVE-2019-17053, CVE-2019-17054, CVE-2019-17055, CVE-2019-17056を修正します。
  • Zombieload v2対策を含むカーネルです。※ 当初のリリースのカーネルには{CVE-1019-0155}の制約を回避できる問題があったため,対応バージョンに注意が必要です。
  • 対処方法:アップデータを適用の上,システムを再起動してください。
  • 備考:ABIの変更を伴いますので,カーネルモジュールを自分でコンパイルしている場合は再コンパイルが必要です。カーネルモジュール関連のパッケージ(標準ではlinux-restricted-modules, linux-backport-modules, linux-ubuntu-modulesなど)は依存性により自動的にアップデートされるため,通常はそのままアップデートの適用を行えば対応できます。
usn-4189-1:DPDKのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005202.html
  • Ubuntu 19.10・19.04・18.04 LTS用のアップデータがリリースされています。CVE-2019-14818を修正します。
  • 悪意ある加工を施した入力を行うことで,リソース過大消費を発生させることが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4190-1:libjpeg-turboのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005203.html
  • Ubuntu 19.04・18.04 LTS・16.04 LTS用のアップデータがリリースされています。CVE-2018-14498, CVE-2018-19664, CVE-2018-20330, CVE-2019-2201を修正します。
  • 悪意ある加工を施したファイルを処理させることで,任意のコードの実行・DoSが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4191-1, usn-4191-2:QEMUのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005208.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005209.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS・14.04 ESM用のアップデータがリリースされています。CVE-2019-12068, CVE-2019-12155, CVE-2019-13164, CVE-2019-14378, CVE-2019-15890を修正します。
  • 悪意あるゲストからホストをクラッシュさせることが可能な複数の問題がありました。また,ネットワークACLの迂回が可能でした。
  • 対処方法:アップデータを適用の上,QEMU仮想マシンを再起動してください。
usn-4192-1:ImageMagickのセキュリティアップデート
usn-4193-1:Ghostscriptのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005211.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS用のアップデータがリリースされています。CVE-2019-14869を修正します。
  • 悪意ある加工を施したファイルを処理させることで,任意のコードの実行・DoSが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-4194-1:postgresql-commonのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2019-November/005212.html
  • Ubuntu 19.10・19.04・18.04 LTS・16.04 LTS用のアップデータがリリースされています。CVE-2019-3466を修正します。
  • ディレクトリ作成時に適切なチェックが行われていないため,権限昇格に利用できました。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。

著者プロフィール

吉田史(よしだふみひと)

システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。