glibc の脆弱性 CVE-2017-12132 は glibc の脆弱性ではない

しゅーとです。

8/1 、glibcの開発者は、glibcにいわゆるアイコラ攻撃の脆弱性が存在するとして修正を行ったとのことです。
その脆弱性のCVE番号は CVE-2017-12132 で、下記に概要が載っています。

cve.mitre.org

また、日本語で概要が載っているページもあります。(※任意のコード実行の可能性との記載がありますが、これは間違いです。)

oss.sios.com

修正までの経緯

glibc脆弱性報告から修正まで、下記のページで行われました。

21361 – (CVE-2017-12132) resolv: Reduce advertised EDNS0 buffer size to guard against fragmentation attacks (CVE-2017-12132)

要約すると、「glibcはEDNS0のbufsizeが最大の65536byte(※正しくは65535byte)に設定してあり、アイコラ攻撃に脆弱である。bufsizeを1200に変更すればこの攻撃を防げる。」ということです。
開発者はこの報告を受け、「現在のglibcアイコラ攻撃に脆弱である」とし、ソースコードを修正し、CVE番号を発行しました。
修正したソースコードについては以下を参照してください。
sourceware.org Git - glibc.git/commitdiff

なにがマズいのか

アイコラ攻撃はDNS(さらに言えば、IPとUDP)のプロトコル上の問題(脆弱性)を突いたものであり、glibc の実装を突くものではありません。
glibc脆弱性ではないのに、なぜおせっかいをするのでしょう。さらに、これはプロトコル脆弱性なので、実装をもって脆弱性を修正することはできません。修正できるということは、それは仕様を逸脱するということです(実装依存除く)。
RFC3226では、EDNS0 の bufsize を 4000 にすべき(SHOULD)としていますが、CVE-2017-12132 の修正()を行ったことで仕様を逸脱していませんか?

あと、bufsize を 1200 にしても MTU によってはフラグメントすることがあるのですが、本当にアイコラ攻撃に脆弱ではなくなったんですか?

その他

glibc は CVE-2017-12132 のおかげでbufsizeが 1200 になったようですが、BINDやUnboundはbufsizeのデフォが4096なので、アイコラ攻撃に脆弱ですね!
ISC さんや NLnet Labsさんに「あなたのソフトウェアはアイコラ攻撃に脆弱なのでbufsizeを修正してCVEを発行してください」と伝えたらいかがですか。

その他2

私、DNSSECはわかりませんが、最近 KSK ロールオーバーに関連して IP フラグメント周りの設定確認が推奨されているようですね。
JPNICの下記ページには「max-udp-sizeとedns-udp-sizeの値を小さく制限していないことを確認します。 デフォルトの値は4096です。 」と記載してあります。glibcさんはいいのですか?ソースコードベタ書きで設定で変更できないようなのですが。
いいと思います

KSKロールオーバーについて - JPNIC