FreeBSD Security Advisory FreeBSD-SA-02:42.resolv

From: FreeBSD Security Advisories (security-advisoriesat_private)
Date: Tue Nov 12 2002 - 20:07:09 PST

  • Next message: Jan Echternach: "Re: When scrubbing secrets in memory doesn't work"

    -----BEGIN PGP SIGNED MESSAGE-----
    
    =============================================================================
    FreeBSD-SA-02:42.resolv                                     Security Advisory
                                                              The FreeBSD Project
    
    Topic:          buffer overrun in resolver
    
    Category:       core
    Module:         libc
    Announced:      2002-11-12
    Credits:        KOZUKA Masahiro <kozukaat_private-u.ac.jp>,
                    Mark Andrews <mark.andrewsat_private>
    Affects:        All releases prior to 4.7-RELEASE
    Corrected:      2002-09-22 12:20:23 2002 UTC (RELENG_4)
                    2002-10-23 14:48:21 2002 UTC (RELENG_4_6)
                    2002-10-23 14:50:52 2002 UTC (RELENG_4_5)
    FreeBSD only:   NO
    
    I.   Background
    
    The resolver implements functions for making, sending and interpreting
    query and reply messages with Internet domain name servers.
    Hostnames, IP addresses, and other information are queried using the
    resolver.
    
    II.  Problem Description
    
    Several libc functions --- including getaddrinfo(), gethostbyname(),
    getnetbyname(), and others --- utilize the DNS resolver functions
    res_search, res_query, and/or res_send.  These resolver functions all
    return the length of the query response received, which may be larger
    than the buffer supplied to hold the response.  When this is the case,
    the resolver-calling function may attempt to read and parse data
    beyond the bounds of the buffer it supplied.
    
    III. Impact
    
    A malicious attacker could spoof DNS queries with specially crafted
    responses that will not fit in the supplied buffer.  This might cause
    some applications to fail (denial-of-service).
    
    IV.  Workaround
    
    There is no known workaround.
    
    V.   Solution
    
    Do one of the following:
    
    1) Upgrade your vulnerable system to 4.7-RELEASE or 4.7-STABLE; or to
    the RELENG_4_7, RELENG_4_6 (4.6-RELEASE-p4), or RELENG_4_5
    (4.5-RELEASE-p22) security branch dated after the correction date.
    
    2) To patch your present system:
    
    The following patch has been verified to apply to FreeBSD 4.5 and
    FreeBSD 4.6 systems.
    
    a) Download the relevant patch from the location below, and verify the
    detached PGP signature using your PGP utility.
    
    # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:42/resolv.patch
    # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:42/resolv.patch.asc
    
    b) Execute the following commands as root:
    
    # cd /usr/src
    # patch < /path/to/patch
    
    c) Recompile the operating system as described in
    <URL:http://www.freebsd.org/doc/handbook/makeworld.html>.
    
    Note that any statically linked applications that are not part of
    the base system (i.e. from the Ports Collection or other 3rd-party
    sources) must be recompiled.
    
    All affected applications must be restarted for them to use the
    corrected library.  Though not required, rebooting may be the easiest
    way to accomplish this.
    
    VI.  Correction details
    
    The following list contains the revision numbers of each file that was
    corrected in FreeBSD.
    
    Path                                                             Revision
      Branch
    - -------------------------------------------------------------------------
    src/lib/libc/net/getaddrinfo.c
      RELENG_4                                                       1.9.2.11
      RELENG_4_6                                                  1.9.2.9.2.1
      RELENG_4_5                                                  1.9.2.8.4.1
    src/lib/libc/net/gethostbydns.c
      RELENG_4                                                       1.27.2.3
      RELENG_4_6                                                    1.27.10.2
      RELENG_4_5                                                     1.27.8.2
    src/lib/libc/net/getnetbydns.c
      RELENG_4                                                       1.13.2.3
      RELENG_4_6                                                 1.13.2.1.8.2
      RELENG_4_5                                                 1.13.2.1.6.2
    src/lib/libc/net/name6.c
      RELENG_4                                                        1.6.2.7
      RELENG_4_6                                                  1.6.2.5.8.2
      RELENG_4_5                                                  1.6.2.5.6.2
    src/lib/libc/net/res_mkquery.c
      RELENG_4                                                       1.15.2.2
      RELENG_4_6                                                 1.15.2.1.6.1
      RELENG_4_5                                                 1.15.2.1.4.1
    - -------------------------------------------------------------------------
    
    VII. References
    
    <URL:http://www.kb.cert.org/vuls/id/738331>
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.1 (FreeBSD)
    
    iQCVAwUBPdF49FUuHi5z0oilAQHQyQQAq4hmcQAMIRiQNS9auxWO+Q+xKZyDwpE/
    Pm3SnkJ6TBQGqoYGioDKN1b4P1jPNWsfm8RKO2GLogLYjwl5VfrEhYJAqj/MvxzM
    poDp2PE7EEGk/yXfnTOOdMcBQjqYev+iUYUfvY9tgXbl83O/0iPlxtCHyfbxDQFy
    aICe2zMdmX8=
    =BceR
    -----END PGP SIGNATURE-----
    



    This archive was generated by hypermail 2b30 : Thu Nov 14 2002 - 22:33:30 PST