パスワードを忘れた? アカウント作成
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
            :

      親コメント
    • by Anonymous Coward

      > 問題が起きないケースは少なく無さそう
      意味が判りません

    • by Anonymous Coward

      懐かしい…
      残業代ゼロでソース書いた思い出があるわ

  • QualysのSecurity Teamの投稿 [seclists.org]によれば、以下のソフトは影響を受けなさそうとのこと。

    > apache, cups, dovecot, gnupg, isc-dhcp, lighttpd, mariadb/mysql,
    > nfs-utils, nginx, nodejs, openldap, openssh, postfix, proftpd,
    > pure-ftpd, rsyslog, samba, sendmail, sysklogd, syslog-ng, tcp_wrappers,
    > vsftpd, xinetd.

    なのでとりあえず自分は様子見。

    • by Anonymous Coward

      検証用 Redhat 5台
      検証用 CentOS 15台

      本番用 Redhat 3台
      本番用 CentOS 50台前後

      yumで適用して今のところ問題ありません。
      glibcですが1月7日前後にも更新されていますので
      yum-cronやyum-updatedでキャッシュしている場合
      古いのを当てて満足しないように・・・大きなお世話か。

    • by Anonymous Coward

      ここにのっていないもので大物は、BINDくらいですかね?

      • by Anonymous Coward on 2015年01月29日 10時08分 (#2752100)

        BINDは最新バージョンでもgethostbyname多用してますね
        qmailとvpopmailもみてみましたが、こちらは大丈夫な様子

        親コメント
        • by Anonymous Coward on 2015年01月29日 10時45分 (#2752123)

          >BINDは最新バージョンでもgethostbyname多用してますね

          少なくとも named では使わねーから気にすんな。
          ちゃんとソースを調べればわかるけど、DNS で名前解決する named が /etc/hosts やら nsswitch の影響を受ける gethosbyname を使うわけがない。

          親コメント
          • by Anonymous Coward

            >BINDは最新バージョンでもgethostbyname多用

            >namedでは使われない

            無知で、すまんが、これが矛盾していないのが理解できない。
            リゾルバとして利用している限りは問題ないってこと?

            • by Anonymous Coward on 2015年01月29日 12時06分 (#2752169)

              BIND のソースには named とは無関係なものもたくさん含まれてる、ってこと。
              ソースを grep すればわかるけど、使われてるのは lwres と idn の2ヶ所。
              前者は named とは完全に独立したプログラム/ライブラリで named とは一切関与しない。
              後者も国際化ドメインを扱う単体ツールの部分が使ってるだけで、named へのパッチ部分では使われてない。

              親コメント
              • by Anonymous Coward

                参考になりました。
                ありがとうございます。

  • by Anonymous Coward on 2015年01月28日 17時27分 (#2751722)

    「長い文字列を黙って切り詰めることは許されない。文字列の長さを把握して領域を確保しろ。これが正しい文字列処理だ。」

    できてないじゃん。

  • by Anonymous Coward on 2015年01月28日 17時36分 (#2751728)

    Linuxを使わなければOk?

  • by Anonymous Coward on 2015年01月28日 17時56分 (#2751747)

    組み込み系は放置されそうで怖いですな
    Androidはlibcなのでセーフかな?

    • by Anonymous Coward

      組み込み系もそうだけれど、LinuxやBSD系をベースに使っているゲーム機も結構怪しい。
      まあ、まともにセキュリティーメンテナンスされてもいないゲーム機のブラウザなんて、怖くて使えないけれどな。
      さらに怖いのが、ネット対応のTVだけど、こんなもののブラウザなんて使っている人はいないか。

  • by Anonymous Coward on 2015年01月28日 19時08分 (#2751781)

    大抵はアプリ側が悪いのは分かってるんだけどさ。。

  • by Anonymous Coward on 2015年01月28日 19時59分 (#2751809)

    脆弱性が存在するのはglibc 2.2からglibc 2.17までで

    $ /lib64/libc.so.6
     
    GNU C Library (Gentoo 2.20-r1 p3) stable release version 2.20, by Roland McGrath et al.
    Copyright (C) 2014 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.
    There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
    PARTICULAR PURPOSE.
    Compiled by GNU CC version 4.9.2.
    Available extensions:
            C stubs add-on version 2.1.2
            crypt add-on version 2.1 by Michael Glad and others
            GNU Libidn by Simon Josefsson
            Native POSIX Threads Library by Ulrich Drepper et al
            BIND-8.2.3-T5B
    libc ABIs: UNIQUE IFUNC
    For bug reporting instructions, please see:
    <http://bugs.gentoo.org/>.

    また勝ってしまった。敗北を知りたい。

    • by Anonymous Coward

      忘れてるだけだろ

    • by Anonymous Coward
      gentoo 使いは泳ぎ続けないと(最新版を入れ続けないと)死んでしまうので仕方ないですよね。
      • by Anonymous Coward

        うちのFedora 20(glibc-2.18-16.fc20.x86_64) もセーフだから、21もセーフだろうな。

      • by Anonymous Coward

        外向けのサーバー、既に5年はemerge --syncすらしてないけど生きてるますよ。

        • by Anonymous Coward

          相手にも選ぶ権利がありますよね

  • by Anonymous Coward on 2015年01月29日 12時01分 (#2752165)

    オプトピだけどgcc自体、競合相手に益しないためにコアの部分は公開しないとRMSがインタビューで答えたのを思いだした。

    # それだけ。10年くらい前に読んだ記事を見付けれない。相当古いバージョンの話かな?この発言聞いて一時、人間(freesoftware運動)不信になった時期がありました。

    • by Anonymous Coward
      それって、「開発中のバージョンは」とかの条件がついてたりしませんか?
      (ベータ)リリース時に公開予定とか
    • by Anonymous Coward

      意味がわかりません。

typodupeerror

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

読み込み中...