LXC 3.0.2 リリースのお知らせ¶
2018/08/21
はじめに ¶
LXC チームは LXC 3.0.2 のリリースをおしらせできることをうれしく思います!
Stable に対するバグフィックスのためのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。
ハイライト ¶
- ユーザ名前空間内ではデバイスを作成できるがオープンできないという Linux
4.18
での変更に合わせました - コンテナの起動時にネットワーク名前空間の ID を割り当てるようにしました
- static な
liblxc
をビルドするようにしました
これは、Netlink 経由でネットワークインターフェースとそのアドレスを効率的に取得するのに役立ちます - コードベース全体でスレッドセーフが強化されました
- 文字列をよりセキュアに扱うために、
strncpy()
とstrncat()
のすべてのインスタンスに、効率的なstrlcpy()
とstrlcat()
の実装を追加しました lxc-*
ツール群(例:lxc-attach
やlxc-start
)がliblxc
共有ライブラリとシンボルを共有するようになりました
これによりコードベースのサイズが大幅に減りました- コード全体でコーディングスタイルの修正を行いました
CVE-2018-6556¶
このリリースでは、コミット CVE 2018-6556: verify netns fd in lxc-user-nic によって CVE-2018-6556 が修正されました。この問題は、lxc-user-nic
がネットワークインターフェースを削除する際に、無条件でユーザから与えられたパスを開いてしまう問題です。
このコードパスは、非特権ユーザーが到達できないパスの存在をチェックするのに使われる可能性があります。また、読み込み専用の特別なカーネルファイル(ptmx
、proc
、sys
)をオープンすることによる副作用を引き起こす可能性があります。
影響を受ける LXC のリリースは、2.0.9 を含む 2.0 以上のバージョン、3.0.2 より前の、3.0.0 を含む 3.0 以上のバージョンです。
バグ修正 (LXC)¶
- Coverity が見つけた一連のバグを修正しました
- lxc-usernsexec: クリーンアップとバグフィックスを行いました
- log: CMD_SYSINFO() を追加しました
- log: CMD_SYSERROR() を追加しました
- state: s/sleep()/nanosleep()/
- lxclock: ファイルロックの改良を行いました
- lxccontainer: ファイルロックの改良を行いました
- lxccontainer: F_OFD_GETLK のチェックを修正しました
- netlink: __netlink_{send,recv,transaction} を追加しました
- netns: ネットワーク名前空間の ID を割り当てるようにしました
- MAINTAINERS: Wolfgang Bumiller 氏を追加しました
- CVE 2018-6556:
lxc-user-nic
で netns の fd をチェックするようにしました - pam_cgfs: クリーンアップを行いました
- log: デフォルトのログプライオリティを追加しました
- tree-wide:
unsigned long
をprctl()
に与えるようにしました - macro: 新しいマクロヘッダーを追加しました
- conf:
EINVAL
の際は "max" なしで devpts をマウントするようにしました - tree-wide:
read()
とwrite()
でEINTR
を扱うようにしました - tree-wide:
pipe()
をpipe2()
に置き換えました - confile: マウントオプションをフラグとデータに分離しました
- conf: rootfs のセットアップを改良しました
- autotools:
-Wvla -std=gnu11
をデフォルトにしました - tree-wide: VLA を削除しました
- tree-wide:
strtok_r()
をlxc_iterate_parts()
に置き換えました - utils:
lxc_iterate_parts()
を追加しました - apparmor:
start-container
でlxc-**
を許可しました - apparmor: 最新のプロファイルに更新しました
- apparmor:
/usr/lib*
のパスでmount
とpivot_root
を許可しました - conf: ユーザ名前空間内では atime をロックするようにしました
- conf: 部分的に functional device ノードを扱うようにしました
- conf:
/dev
ディレクトリを作成するようにしました - autotools: liblxc の共有ライブラリとスタティックライブラリの両方をビルドするようにしました
- namespace: 名前空間を標準の識別子に変換する API を追加しました
- tree-wide:
MSG_NOSIGNAL
を設定するようにしました - tree-wide: ダミーファイルを作成する際には
mknod()
を使うようにしました - cgfsng:
lxc.cgroup.use
を参照するようにしました - cgroups:
is_crucial_cgroup_subsystem()
を削除しました - tree-wide: 不要なログプレフィックスを削除しました
- tests: 全テストをクリーンアップしました
- terminal: pty ファイルディスクリプタに
FD_CLOEXEC
を設定するようにしました - conf:
lxc_setup_dev_console()
を簡素化しました - tools: ツール類を手直ししました
- autodev: Linux 4.18 での変更に合わせました
- log: strerror を使った
DEBUG, INFO, TRACE, NOTICE
マクロをSYS*
マクロに変更しました - log:
lxc_log_strerror_r
マクロを追加しました - network: 非特権 LXC が
lxc.net.[i].script.up
を実行するようになりました - conf: 必要なときだけ
newuidmap
とnewgidmap
を使うようになりました - autotools: クロスコンパイル時に TLS をサポートするようになりました
バグ修正 (LXC templates)¶
- fedora: Fedora 28 をサポートを追加しました
- templates: opensuse: openSUSE Leap 15 のサポートを追加しました
- templates: opensuse: EOL となったディストリビューションのサポートを削除しました
- templates: lxc-opensuse.in: キャッシュが完全に存在していることを保証するようにしました
- templates: lxc-opensuse.in: openSUSE Leap 15 のキャッシュ URL を修正しました
バグ修正 (python3 バインディング)¶
- README.md 内の Typo を修正しました
サポートとアップグレード ¶
LXC 3.0.2 は 2023 年 6 月までサポートされる最新の LTS リリースです。
利用可能になった最新のバグ修正リリースに更新することをお勧めします。
ダウンロード ¶
- LXC リリース tarball : lxc-3.0.2.tar.gz (GPG: lxc-3.0.2.tar.gz.asc)
- LXC テンプレート tarball : lxc-templates-3.0.2.tar.gz (GPG: lxc-templates-3.0.2.tar.gz.asc)
- LXC python3 バインディング tarball : python3-lxc-3.0.2.tar.gz (GPG: python3-lxc-3.0.2.tar.gz.asc)
Contents