getaddrinfo() 脆弱性に対する Glibc パッチ

getaddrinfo() 脆弱性に対する Glibc パッチ

私は攻撃者が悪用する可能性がある(難しいですが)glibcライブラリで新しく発見された脆弱性についてよく見ました。

以下はトピックに関する(わずか硫黄)記事です: http://arstechnica.com/security/2016/02/extremely-severe-bug-leaves-dizzying-number-of-apps-and-devices-vulnerable/

脆弱性の性質を理解していますが、パッチソリューションを読んでいる間に少し混乱があったことを認識する必要があります。マシン上でいくつかのステップを経なければならないようですが、電子メールに「パッチ」が添付されていると言われています。

パッチは正確にどこにありますか?

https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html

申し訳ありません。私はLinuxシステムエンジニアではありません(aptitudeとyumは私の同胞です)。

残念ながら、私がクライアントのために管理しているサイトのいくつかは主にAmazon Linuxにあり、そのサイトも影響を受ける可能性があることを読んでいます。影響を受けると仮定します。

私はボックスを保護し、パッチを適用する能力があるかどうかを確認したいのですが、glibcメールのアーカイブについて混乱しているようです。

誰でもこれについて明らかにできますか?つまり、低レベルのフロントエンドWeb開発者が理解できる言語で表現できますか?

私はこれが新しい/進化していることを知っており、将来より良い文書が提供されると確信しています。

よろしくお願いします。

ベストアンサー1

よくサポートされているディストリビューションを使用している場合は、元のパッチ自体は必要ありません。ほとんどのディストリビューションは現在libcを更新し、それをリポジトリにプッシュしました。パッケージマネージャを使用してlibcをアップグレードするだけです。 (これまでにそうしなかった場合は、ディストリビューションの移行を真剣に検討してください。)これは確かにAmazon Linuxの場合です。 ~からセキュリティ勧告:

[C]AWS以外のDNSインフラストラクチャを使用するように設定を変更したAmazon EC2を使用しているお客様は、Linuxディストリビューションが提供する指示に従ってLinux環境を即座に更新する必要があります。 AWS DNSインフラストラクチャを使用しているEC2のお客様は影響を受けず、いかなる措置も取る必要はありません。

AWSではなくDNSインフラストラクチャを使用するように設定を変更したAmazon Linuxを使用しているAmazon EC2のお客様の場合:

CVE-2015-7547の修正は、重大度評価が「緊急」としてAmazon Linux AMIリポジトリにプッシュされました。 2016年2月16日以降にデフォルトのAmazon Linux設定を使用して起動されたインスタンスには、このCVEに必要な修正が自動的に含まれます。

パッチを確認するには、次diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.cから始まるEメールセクションを見てください。

CVE-2015-7547

2016-02-15  Carlos O'Donell  

    [BZ #18665]
    * resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Always set
    *herrno_p.
    (gaih_getanswer): Document functional behviour. Return tryagain
    if any result is tryagain.
    * resolv/res_query.c (__libc_res_nsearch): Set buffer size to zero
    when freed.
    * resolv/res_send.c: Add copyright text.
    (__libc_res_nsend): Document that MAXPACKET is expected.
    (send_vc): Document. Remove buffer reuse.
    (send_dg): Document. Remove buffer reuse. Set *thisanssizp to set the
    size of the buffer. Add Dprint for truncated UDP buffer.

diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index a255d5e..47cfe27 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
   int h_namelen = 0;

   if (ancount == 0)
-    return NSS_STATUS_NOTFOUND;
+    {
+      *h_errnop = HOST_NOT_FOUND;
+      return NSS_STATUS_NOTFOUND;
+    }

...

おすすめ記事