Qualysの専門家は、GNUの
gethostbyname()および
gethostbyname2()の脆弱性を報告しました
Cライブラリ(glibc)。少なくとも1つのケースでは、リモートでコードが実行される可能性があります。 この脆弱性により、ヒープ内の32ビットシステムでは最大4バイト、64ビットシステムでは最大8バイトが数字(0〜9)、ピリオド(。)、およびNULL文字(0x00)で上書きされます。
この脆弱性は、2000年11月10日付けのglibc-2.2バージョンに現れ、glibc-2.18で2013年5月21日バージョンでクローズされたため、Linux LTSディストリビューションのみが脆弱です:Debian 7、Red Hat Enterprise Linux 6および7、CentOS 6および7 Ubuntu 12.04。
脆弱性は、ホスト名の取得を担当するコードです。 ヒープを上書きするには、ホスト名が次の条件を満たす必要があります。
- 数字とドットのみを含む
- 最初の文字は数字でなければなりません
- 最後の文字はピリオドであってはなりません
- バッファをオーバーフローさせるのに十分な長さ(> 1KB)
次の2つの要因により、運用リスクが大幅に削減されていることに注意してください
。gethostbyname()呼び出しはIPv6サポートがないため古くなっているため、ソフトウェアは
getaddrinfo()をより頻繁に使用します。
gethostbyname ()の前に
inet_aton()を呼び出すと、脆弱性が防止されます。
これら2つの要因にもかかわらず、Qualysのスタッフは、割り当てられたバッファーのサイズを上書きし、exim4に組み込まれた$ run {}呼び出しを使用して、exim4でコードをリモートで実行できました。 彼らはすぐにメタスプロイのエクスプロイトを投稿することを約束します。
libc(uclibc、musl)の他の実装では、脆弱性はありません。 Eglibcは脆弱です。
CVE-2015-0235Qualys.comページoss-securityメーリングリストの詳細な説明