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 메일 보관에 대해 혼란스러워하는 것 같습니다.

누구든지 이에 대해 밝힐 수 있습니까? 즉, 낮은 수준의 프런트 엔드 웹 개발자가 이해할 수 있는 언어로 표현할 수 있습니까?

나는 이것이 새로운/진화하고 있다는 것을 알고 있으며 앞으로 더 나은 문서가 제공될 것이라고 확신합니다.

미리 감사드립니다.

답변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으로 시작하는 이메일 섹션을 살펴보시기 바랍니다.

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;
+    }

...

관련 정보