2016年3月10日木曜日

FreeBSD 9.3 の p38 (OpenSSL, Bind) アップデート

FreeBSD 9.3 へ p38 アップデート(2個)が到着しました。しかし /usr/src/UPDATING の内容を確認してみると3月3日に p37 (OpenSSL) のアップデートが存在していた模様です。しかし何らかの事情で公開されることなく、今回の p38 アップデートになってしまいました。すでに OpenSSL のアップデートが近かったことから p37 は見送られたのかもしれません。

OpenSSL も Bind9 も複数の脆弱性対策ということでした。
FreeBSD-SA-16:12.openssl
- Multiple OpenSSL vulnerabilities -
https://www.freebsd.org/security/advisories/FreeBSD-SA-16:12.openssl.asc

FreeBSD-SA-16:13.bind
- Multiple BIND vulnerabilities -
https://www.freebsd.org/security/advisories/FreeBSD-SA-16:13.bind.asc

/usr/src/UPDATING の内容

20160310        p38     FreeBSD-SA-16:13.bind
                        FreeBSD-SA-16:12.openssl [revised]

        Fix multiple vulnerabilities of BIND. [SA-16:13]

        Fix a regression with OpenSSL patch. [SA-16:12]

20160303        p37     FreeBSD-SA-16:12.openssl

        Fix multiple vulnerabilities of OpenSSL.


ソースツリーの更新

subversion でソースツリーを更新しました。なんと!競合が発生してしまいました。
競合が発生したのは /usr/src/crypto/openssl/crypto/ecdsa/Makefile です。ソースツリーには 一切 手を加えていないので、不思議な感じです。
# svn update /usr/src
G    /usr/src/UPDATING
U    /usr/src/contrib/bind9/bin/named/control.c
U    /usr/src/contrib/bind9/bin/named/controlconf.c
U    /usr/src/contrib/bind9/bin/rndc/rndc.c
U    /usr/src/contrib/bind9/lib/dns/resolver.c
U    /usr/src/contrib/bind9/lib/isccc/cc.c
U    /usr/src/crypto/openssl/crypto/bn/bn_exp.c
U    /usr/src/crypto/openssl/crypto/bn/asm/x86_64-gcc.c
U    /usr/src/crypto/openssl/crypto/bn/bn.h
U    /usr/src/crypto/openssl/crypto/bn/bn_add.c

  (中略)

U    /usr/src/secure/usr.bin/openssl/man/smime.1
U    /usr/src/secure/usr.bin/openssl/man/version.1
Updated to revision 296611.
Summary of conflicts:
  Text conflicts: 1
Conflict discovered in file '/usr/src/crypto/openssl/crypto/ecdsa/Makefile'.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
        (mc) my side of conflict, (tc) their side of conflict,
        (s) show all options: df

こんな時の subversion の競合の解決方法を知りませんでした(涙)。もっと subversion の勉強をしなければ・・・。

とりあえず後で処理をする (p) postpone を選択して subversion を終了させました。
今回のアップデートでは、新しいリビジョン(r296611)のソースコードが必要です。しかし問題となったソースコードのリビジョンは古い(r295070)ままです。そこで中間ファイルとして残っている新しいリビジョンのファイルを古いリビジョンのものへ上書きしました。スマートな方法ではありませんが、間違えではないはずです。
# cp /usr/src/crypto/openssl/crypto/ecdsa/Makefile.r296611 /usr/src/crypto/openssl/crypto/ecdsa/Makefile
(追記)単純に最新ファイルへ更新するだけであれば  (tc) their side of conflict を選択すればよいそうです。

カーネルとユーザランドの再ビルド

今回のアップデートでは、ユーザランドの再ビルドが必要です。
# cd /usr/src
# make buildworld

ユーザランドのインストール

# make installworld

マシンの再起動

# reboot

0 件のコメント:

コメントを投稿