パスワードを忘れた? アカウント作成
11888827 story
Linux

glibcのgethostbyname系関数に脆弱性、「GHOST」と呼ばれる 34

ストーリー by hylom
これはでかい 部門より
あるAnonymous Coward 曰く、

クラウドセキュリティ企業Qualysの研究者が、GNU Cライブラリ(glibc)に深刻な脆弱性があることを発見した(JVNVU#99234709CVE-2015-0235ZDNet Japan)。

この脆弱性は「GHOST」と呼ばれており、これを利用することでリモートから任意のコードが実行される可能性があるという。

脆弱性が存在するのはglibc 2.2からglibc 2.17までで、piyologによるとglibcの__nss_hostname_digits_dots() にヒープバッファオーバーフローの脆弱性があり、この関数はgethostbyname()とgethostbyname2()で使われているという(Red Hat Bugzilla)。これら関数に細工されたURL文字列を与えることで、バッファオーバーフローを引き起こせる可能性があるようだ。

Qualysによれば、この問題は2013年5月21日にリリースされたglibc 2.17とglibc 2.18の間のバグフィックスで修正されているという。ところが、このバグフィックスはセキュリティ上の問題であるとは分類されていなかったため、多くのLinuxディストリビューションには適用されていないという。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • Qualys のレポート [qualys.com]

    - The gethostbyname*() functions are obsolete; with the advent of IPv6, recent applications use getaddrinfo() instead.

    IPv6 に対応しようとしたら、必然的に getaddrinfo() を使うんで、意外に問題が起きないケースは少なく無さそう。

    getaddrinfo() ならセーフかというと、厳密には getaddrinfo の中で gethostbyname2_r() を呼び出していて、でも、問題を引き起こすのには条件がキツイからセーフ、といった具合。ZDNet の記事 [zdnet.com]の煽り具合ほどでは無さそうな感じ。

    • LinuxのgethostbynameはIPv4オンリーではなくIPv6もOKであるように拡張されてるような。
      man gethostbynameより:

      The gethostbyname() function returns a structure of type hostent for
      the given host name. Here name is either a hostname, or an IPv4
      address in standard dot notation (as for inet_addr(3)), or an IPv6
      address in colon (and possibly dot) notation. (See RFC 1884 for the
      description of IPv6 addresses.) If name is an IPv4 or IPv6 address, no
            :

      親コメント
typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...