Ubuntu Weekly Topics

2018年2月9日号 JRE/JDKの変更,Spectre/Meltdown対策さらにその後

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

JRE/JDKの変更

Oracle社のJDKの提供ポリシーの変化にあわせて(OracleのJava SEのサポートポリシーについてはOracleのドキュメントも参照してください。注1⁠,UbuntuでもJRE/JDKのサポート体制が変更される予定です。

注1
この変更は端的には「Java 11からはOracle JDKの無償提供は行わず,代替は(これまでのような明らかに機能に差があるものではなく,Oracle JDKと遜色ない機能を持つようになった)OpenJDKとなる」というものです。Java SEや言語としてのJavaとしては他にも破壊的変更が加えられるタイミングの変動といった点を考慮する必要がありますが,Ubuntu視点では「現時点でリリースされているあらゆるJREとJDKが近い将来にEOLするので,Java 11のリリースタイミングでOracle JDKかOpenJDKへシフトする必要がある」ということがポイントです。

現時点では,bionicリリース時点ではOpenJDK 10をデフォルトのJRE/JDKとすること,また,リリース後(9月ないし10月)にOpenJDK 11への(SRU Exception注2を伴った)更新を行うことが想定されています注3⁠。

注2
SRU Exceptionについては,2015年10月2日号を参照してください。

このSRU ExceptionはOpenJDK 10から11への差異が十分に小さい(fairly small)ことを前提としており,大規模な破壊的変更が生じた場合にどうするか,といった点には議論の余地があります。

ただしJavaのエコシステム上,2018年前半における選択肢としては,この「ひとまずOpenJDK 10にしておき,後ほど11へ移行する」以外には現実的な選択肢はありません。OpenJDK 8に留まると,bionicのサポート期間のあいだに8から他のバージョンへのジャンプが発生することになり,言語仕様の差異によって大きなわざわい(⁠⁠Javaアプリケーションのかなりの部分がサポート期間の途中で動かなくなる」というもの)を引き起こすことになります。

なお,OpenJDK 11がどの程度の期間サポートされるのか,という点が現状未定のため,8月(ないし9月)にOpenJDK 11へ更新した後,OpenJDK 12/13等へ順次更新していくのかは不明です。

SRU Exceptionを伴う変更(や,Javaそのものの言語仕様の破壊的変更)を複数回繰り返すのはLTSのポリシーに反するため,OpenJDK 11が十分なサポート期間を持つようであればOpenJDK 11のまま維持される可能性が高いと考えられます。やむを得ない場合はSRU Exception(と主張するのにはムリがある大きな変更)を半年ごとに繰り返す,という方向性にならざるをえないでしょう注3⁠。

注3
究極的な裏技としては「OracleとCanonicalが提携し,Ubuntuに限ってはOracle JDKの長期サポート版が提供される」といった解もありえないわけではありません(ただし,この場合「有償サポート下でしか提供されないOracle JDKのコストを誰が負担するのか」という別の問題が発生します⁠⁠。

Spectre/Meltdown対策,さらにその後

業界全体を巻き込んだ混乱になっているSpectre/Meltdown対策について,Ubuntuでも新しい動きがありました。いくつかの面で問題のあった既存の更新(Intelの更新版マイクロコードとあわせて動作する幾つかの修正。注4を破棄して,Retpolineベースの対策に切り替える大規模修正がマージされています。

注4
これにはシステムを不安定にする以外に,⁠無視できないレベルで遅くなる」という問題がありました。これにまつわる紆余曲折に興味がある場合,Intelの対策ドキュメントでIBRS・IBPBといった実装を把握した上でLKMLのアーカイブを辿ってみてください。

テストが行われた後,カーネルパッケージとして入手可能になると見られます。既存のIBRSベースの緩和策とは異なりマイクロコードの更新とペアで動作するわけではないので,カーネルパッケージ単体での更新で対処できます。

なおRetpolineによる防御も常に有効なわけではないため(一定条件下で防御しきれないケースがLKMLで指摘されています⁠⁠,さらにもう一段階,必要に応じてIBRSを利用する,といったアプローチの試行錯誤が行われています。今後,より新しいパッチセットをベースにしたカーネルが投入される可能性があります。

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

usn-3553-1:Rubyのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-January/004256.html
  • Ubuntu 17.10・16.04 LTS用のアップデータがリリースされています。CVE-2017-0901, CVE-2017-0902, CVE-2017-0903を修正します。
  • 悪意ある加工を施したgemファイルを処理させることで,ファイルシステム上の任意のファイルを上書きすることが可能でした。また,RubyGemsのダウンロードにおいてDNSハイジャックが可能でした。また,悪意ある加工を施したYAMLファイルを処理させることで,任意のコードの実行が可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-3552-1:Firefoxのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-January/004257.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2018-5124を修正します。
  • Firefox 58.0.1のUbuntuパッケージ版です。
  • 対処方法:アップデータを適用の上,Firefoxを再起動してください。
usn-3554-1, usn-3554-2:curlのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-January/004258.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004259.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS・12.04 ESM用のアップデータがリリースされています。CVE-2018-1000005, CVE-2018-1000007を修正します。
  • 悪意ある入力を処理させることで,クラッシュもしくは認証情報を漏洩してしまう問題がありました。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-3555-1, usn-3555-2:w3mのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004260.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004261.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS・12.04 ESM用のアップデータがリリースされています。CVE-2018-6196, CVE-2018-6197, CVE-2018-6198を修正します。
  • 悪意ある入力を処理させることで,クラッシュが生じる問題がありました。また,.w3mファイルへの書き込みが行えない場合に/tmp以下にあるファイルを利用する際のテンポラリファイルの処理に問題があり,古典的symlink攻撃が可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-3556-1, usn-3556-2:Dovecotのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004262.html
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004263.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS・12.04 ESM用のアップデータがリリースされています。CVE-2017-15132を修正します。
  • 特定の入力を行うことでクラッシュを誘発させることが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-3550-2:ClamAVのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004264.html
  • Ubuntu 12.04 ESM用のアップデータがリリースされています。
  • usn-3550-1の12.04 ESM用です。CVE-2017-12374, CVE-2017-12375, CVE-2017-12376, CVE-2017-12377, CVE-2017-12378, CVE-2017-12379, CVE-2017-12380を修正します。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
  • 備考:アップストリームの新しいリリースをそのまま利用したパッケージです。非互換の変更点を含んでいる場合があります。
usn-3557-1:Squidのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004265.html
  • Ubuntu 17.10・16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2016-2569, CVE-2016-2570, CVE-2016-2571, CVE-2016-3948, CVE-2018-1000024, CVE-2018-1000027を修正します。
  • 悪意ある応答等を利用して,Squidをクラッシュさせることが可能でした。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。
usn-3558-1:systemdのセキュリティアップデート
  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2018-February/004266.html
  • Ubuntu 16.04 LTS・14.04 LTS用のアップデータがリリースされています。CVE-2017-15908, CVE-2018-1049を修正します。
  • 特定の入力を行うことでsystemd-resolvedの応答を停止させることが可能でした。また,automountされたボリュームへのアクセスにおいて,応答が停止することがありました。
  • 対処方法:通常の場合,アップデータを適用することで問題を解決できます。

著者プロフィール

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

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