search
LoginSignup
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

FreeBSD Advent Calendar 2020 Day 8

posted at

updated at

FreeBSDにおけるunbound の CVE-2020-28935 パッチ ( 2020/12/17 obsoleted)

注意 

消費期限が過ぎました。 捨てましょう。

unbound について

言わずと知れた FreeBSD公式 のフルリゾルバです。

version

FreeBSD11/12 では /etc/rc.d/local_unbound が ユーザランドにあり
contrib/unbound は、 version 1.10.0 (2020/12/04現在) です。
ports の dns/unbound は version 1.12.0 です。 

CVE-2020-28935

2020/12/01 現在 unbound の以下のバージョンには、シンボリックリンク攻撃の恐れがあります。


versions 1.6.6 - 1.12.0 

参照 :

contrib / ports の どちらを使うか

本来であれば FreeBSD のパッチが出るのを待つのも手ですが、 以前から ports の unbound の更新は先んじているので、こちらに切り替えておくべきというのもあります。 そもそも ports にしかなかったものですので、FreeBSD 11.0以前からの運用だと dns/unbound を使っていたという方もいるでしょう。

しかしcontribとはいえ公式に採用されてからは local_unbound というサービスがインストーラから選択できるようになって、新しくインストールした機材には contrib版を*ついうっかり*入れることもあります?

という経緯なので、わざわざ公式サポートされているものに敢えて ports を使うコストはあるかは管理コスト次第という身もふたもない話ですが、 ports から であれば気兼ねなく(?)ローカルハック・アップデートできます。無論 freebsd-update から干渉されることはありません。

ports に手を入れる。

12/04 の時点では、まだ CVE-2020-28935 対策済みの 1.13.0 が portsにありませんので、例によって勝手に手を入れてしまいます。


$ cd /usr/ports/dns/unbound
$ sudo sed -i -e 's/1.12.0/1.13.0/g' Makefile
$ sudo sed -i -e 's/8.1.10/8.1.11/g' pkg-plist 
$ sudo make makesum
===>  License BSD3CLAUSE accepted by the user
===>  License BSD3CLAUSE accepted by the user
===>   unbound-1.13.0 depends on file: /usr/local/sbin/pkg - found
=> unbound-1.13.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch https://www.nlnetlabs.nl/downloads/unbound/unbound-1.13.0.tar.gz
unbound-1.13.0.tar.gz                                 5810 kB  197 kBps    30s
===> Fetching all distfiles required by unbound-1.13.0 for building

$ sudo portsmaster dns/unbound 
...

rc.conf を変える。

local_unbound を使っている場合ならば以下の手順で速やかに移行できます。


local_unbound_enable="YES"

を以下のように。


unbound_profiles="local"
unbound_local_enable="YES"
unbound_local_config=/var/unbound/unbound.conf

contrib 版 local-unbound の件(おまけ)

以前は、公式版 unbound (local-unbound) が バイナリファイル /usr/sbin/unbound
デプロイされていました。
それは 11.3/12.0 頃までと記憶しています。11.4/12.1 からは local-unbound になったんですかね?? いつからそうだったのか??? というと調べなければなりませんが。

追記(賞味期限が切れました)

2020/12/17 現在、 1.13.0 → 1.13.1 が正式になりましたんで、この記事の内容は obsolete になりました。



# Created by: Sergey Matveychuk 
# $FreeBSD: head/dns/unbound/Makefile 558269 2020-12-17 09:38:40Z brnrd $

PORTNAME=       unbound
PORTVERSION=    1.13.0
PORTREVISION=   1
CATEGORIES=     dns

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1
Help us understand the problem. What are the problem?