_ NetBSD でリゾルバの edns0 対応が腐ってた件、やっと修正を コミットしてもらえたようで。自分でももうすっかり忘れてたよ。send-pr したのが去年の12月だから、それから11ヶ月か。 別の人が同じ問題にハマってくれたおかげでこの件が発掘されたみたい。 みたい。
_ 別件で、ついこないだ OpenBSD のリゾルバでも気になることを見つけちゃったんだよね。バグというよりも他の OS と挙動が異なる、という程度なんだけど、その違いというのがセキュリティ的に安全側に倒れてないので、うーん、という感じ。近所にコミッターな人がいたので、挙動を他と合わせるようにできないか相談してみたり。
_ 左耳が聞こえにくい件、だんだん悪化してきて、静かなところでは耳鳴りも聞こえるようになってきたのでいちおう医者へ。例によってはっきりした物言いはせず、どっちかというと若い女性ではよくある症状だよねー、程度でおしまい。まあ、たぶん これか これなんでしょうな。今のところめまいが起きるようなことはないけど、そうならないように要観察と。
_ …という素人診断を避けるためにも、医者にはほげほげの可能性があるぐらいでもかまわんのである程度ちゃんと言ってほしいんだが。
_ とりあえず薬は処方されたけど、最初に診察を受けた 3月のときに治ったのは薬が効いたのかたんに自然治癒だったのか判然とせんのだよな。 7月に再発したときは医者にかからず薬もなしで放置してたらそのうち何ともなくなったし。
_ ちょ、OpenBSD って 5.6 から tcp_wrappers がなくなったのか。pf でやれってことなんだろうけど、hosts.allow の挙動の確認そのものが目的だったのでやむなく自力コンパイル。
_ Solaris 7 か 8 のころは当たり前のようにコンパイルしてたけど、まさか今になって自力で make するはめになろうとは。
_ ldns の ldns-keygen ツールにおけるプライベートキーを取得される脆弱性
_ …え、ldns-keygen が秘密鍵を作るときに権限を現在の umask そのままにしちゃって誰でも中を見られるのって仕様じゃなかったの? いや、ほんとにそうなのだとしたらひどいクソ仕様だけど、あんなにあからさまに誰でも読める鍵を作る挙動を何年も放置してたから、そういうもんだから使う側で対処しろ、ということだとずっと思ってたよ。
_ ldns に付属のツール群って、ソースが examples ディレクトリの下にあるし、デフォではコンパイルされないし、ってな具合で、ldns というライブラリを使ったプログラムのサンプル程度に扱ってくれということだと理解してた。だから少しぐらい手抜き実装でもしかたないし、問題あるなら自分で直せ、という認識。気がついた時点で報告しておいた方がよかったのかなぁ?
_ 少なくとも自分は 3年前にはすでに気がついてたし、 自作スクリプトでも、
てな感じでちゃんと対策してある(このコードだと鍵生成から chmod までの一瞬の間を狙われる可能性がゼロではないので完全ではないけど)。if keyname=`$do_keygen $1` && chmod go-rwx *.private; then_ つーか、これ、JVNDB に乗ったのはつい最近だけど、CVE の採番は半年以上前だったのか。見逃してた。で、修正はコミットされたけど、そこから実際のリリースはまだされてない、と。やっぱりその程度の扱いなんだな。
_ そういえば、wget もクッキーをファイルに保存するときに umask そのままで作っちゃうんで、同一ホスト内の他人がセッションを乗っ取れるという 問題があるんだけど、これって修正されたのかな。
…直ってないな。% wget --save-cookies=cookie.txt http://www.google.com/ ... % ls -l cookie.txt -rw-r--r-- 1 yamaya yamaya 379 Nov 19 22:37 cookie.txt % wget --version GNU Wget 1.16 built on freebsd10.0. ..._ 直してみた。
--- wget-1.16/src/cookies.c.orig 2014-07-25 16:50:10.000000000 +0900 +++ wget-1.16/src/cookies.c 2014-11-19 23:06:55.255097599 +0900 @@ -51,6 +51,7 @@ #include <assert.h> #include <errno.h> #include <time.h> +#include <sys/stat.h> #ifdef HAVE_LIBPSL # include <libpsl.h> #endif @@ -1293,12 +1294,15 @@ { FILE *fp; hash_table_iterator iter; + mode_t old_mask; DEBUGP (("Saving cookies to %s.\n", file)); cookies_now = time (NULL); + old_mask = umask(077); fp = fopen (file, "w"); + umask(old_mask); if (!fp) { logprintf (LOG_NOTQUIET, _("Cannot open cookies file %s: %s\n"),