Protect yourself against future threats.
-----BEGIN PGP SIGNED MESSAGE----- =========================================================================== AUSCERT External Security Bulletin Redistribution ESB-2003.0685 -- FreeBSD-SA-03:14.arp [REVISED] denial of service due to ARP resource starvation 26 September 2003 =========================================================================== AusCERT Security Bulletin Summary --------------------------------- Publisher: FreeBSD Operating System: FreeBSD BSD Impact: Denial of Service Access Required: Remote Ref: ESB-2003.0682 - --------------------------BEGIN INCLUDED TEXT-------------------- - -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ============================================================================= FreeBSD-SA-03:14.arp Security Advisory The FreeBSD Project Topic: denial of service due to ARP resource starvation Category: core Module: sys Announced: 2003-09-25 Credits: Apple Product Security <firstname.lastname@example.org> Affects: All releases of FreeBSD FreeBSD 4-STABLE prior to the correction date Corrected: 2003-09-24 21:48:00 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-25 13:33:01 UTC (RELENG_5_1, 5.1-RELEASE-p8) 2003-09-25 13:33:29 UTC (RELENG_5_0, 5.0-RELEASE-p16) 2003-09-25 13:34:14 UTC (RELENG_4_8, 4.8-RELEASE-p10) 2003-09-25 13:34:31 UTC (RELENG_4_7, 4.7-RELEASE-p20) 2003-09-25 13:34:52 UTC (RELENG_4_6, 4.6-RELEASE-p23) 2003-09-25 13:35:18 UTC (RELENG_4_5, 4.5-RELEASE-p34) 2003-09-25 13:35:33 UTC (RELENG_4_4, 4.4-RELEASE-p44) 2003-09-25 13:35:48 UTC (RELENG_4_3, 4.3-RELEASE-p40) FreeBSD only: NO For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit <URL:http://www.freebsd.org/security/>. 0. Revision History v1.0 2003-09-23 Initial release. v1.1 2003-09-25 Initial patch was incorrect. I. Background The Address Resolution Protocol (ARP) is fundamental to the operation of IP with a variety of network technologies, such as Ethernet and WLAN. It is used to map IP addresses to MAC addresses, which enables hosts on a local network segment to communicate with each other directly. These mappings are stored in the system's ARP cache. FreeBSD's ARP cache is implemented within the kernel routing table as a set of routes for the address family in use that have the LLINFO flag set. This is most commonly often AF_INET (for IPv4). Normally, when a FreeBSD system receives an ARP request for a network address configured on one of its interfaces from a system on a local network, it adds a reciprocal ARP entry to the cache for the system from where the request originated. Expiry timers are used to purge unused entries from the ARP cache. A reference count is maintained for each ARP entry. If the reciprocal ARP entry is not in use by an upper layer protocol, the reference count will be zero. II. Problem Description Under certain circumstances, it is possible for an attacker to flood a FreeBSD system with spoofed ARP requests, causing resource starvation which eventually results in a system panic. (The critical condition is that a route exists for the apparent source of the ARP request. This is always the case if the system has a default route configured for that protocol family.) If a large number of ARP requests with different network protocol addresses are sent in a small space of time, resource starvation can result, as the arplookup() function does not delete unnecessary ARP entries cached as the result of responding to an ARP request. NOTE WELL: Other BSD-derived systems may also be affected, as the affected code dates well back to the CSRG branches. III. Impact An attacker on the local network may be able to cause the system to hang or crash. The attacker must have physical access to the shared network medium. In the case of a wireless network obtaining this access may be trivial. Networks where proxy ARP is used to direct traffic between LANs may be particularly vulnerable to the attack, as the spoofed ARP requests could be bounced through to the target via routers implementing proxy ARP. Because the attack operates at Layer 2, the use of strong encryption technologies such as IPsec cannot protect a system against the attack. IV. Workaround There is no known workaround at this time. V. Solution Do one of the following: 1) Upgrade your vulnerable system to 4-STABLE; or to the RELENG_5_1, RELENG_5_0, RELENG_4_8, or RELENG_4_7 security branch dated after the correction date. 2) To patch your present system: The following patch has been verified to apply to FreeBSD 5-CURRENT, 4.9-PRERELEASE, and 4.8 systems. a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility. ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:14/arp.patch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:14/arp.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch c) Rebuild your kernel as described in <URL:http://www.freebsd.org/handbook/kernelconfig.html> and reboot the system. VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Branch Revision Path - - ------------------------------------------------------------------------- RELENG_4 src/sys/netinet/if_ether.c 184.108.40.206 RELENG_5_1 src/UPDATING 220.127.116.11 src/sys/conf/newvers.sh 18.104.22.168 src/sys/netinet/if_ether.c 22.214.171.124 RELENG_5_0 src/UPDATING 126.96.36.199 src/sys/conf/newvers.sh 188.8.131.52 src/sys/netinet/if_ether.c 184.108.40.206 RELENG_4_8 src/UPDATING 220.127.116.11.2.12 src/sys/conf/newvers.sh 18.104.22.168.2.11 src/sys/netinet/if_ether.c 22.214.171.124.2.2 RELENG_4_7 src/UPDATING 126.96.36.199.2.23 src/sys/conf/newvers.sh 188.8.131.52.2.22 src/sys/netinet/if_ether.c 184.108.40.206.2.2 RELENG_4_6 src/UPDATING 220.127.116.11.2.52 src/sys/conf/newvers.sh 18.104.22.168.2.40 src/sys/netinet/if_ether.c 22.214.171.124.2.2 RELENG_4_5 src/UPDATING 126.96.36.199.2.51 src/sys/conf/newvers.sh 188.8.131.52.2.35 src/sys/netinet/if_ether.c 184.108.40.206.2.2 RELENG_4_4 src/UPDATING 220.127.116.11.2.52 src/sys/conf/newvers.sh 18.104.22.168.2.43 src/sys/netinet/if_ether.c 22.214.171.124.2.2 RELENG_4_3 src/UPDATING 126.96.36.199.2.39 src/sys/conf/newvers.sh 188.8.131.52.2.29 src/sys/netinet/if_ether.c 184.108.40.206.2.2 - - ------------------------------------------------------------------------- VII. References <URL:http://docs.info.apple.com/article.html?artnum=61798> - -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/cvNNFdaIBMps37IRAlIsAJ9Kj0u+ZUEOUcpqjl6hISvrALwGQgCfaG5m jpFBTK86xjFNz4t43ZQtcOU= =cfvr - -----END PGP SIGNATURE----- - --------------------------END INCLUDED TEXT-------------------- You have received this e-mail bulletin as a result of your organisation's registration with AusCERT. The mailing list you are subscribed to is maintained within your organisation, so if you do not wish to continue receiving these bulletins you should contact your local IT manager. If you do not know who that is, please send an email to email@example.com and we will forward your request to the appropriate person. This security bulletin is provided as a service to AusCERT's members. As AusCERT did not write the document quoted above, AusCERT has had no control over its content. The decision to follow or act on information or advice contained in this security bulletin is the responsibility of each user or organisation, and should be considered in accordance with your organisation's site policies and procedures. AusCERT takes no responsibility for consequences which may arise from following or acting on information or advice contained in this security bulletin. NOTE: This is only the original release of the security bulletin. It may not be updated when updates to the original are made. If downloading at a later date, it is recommended that the bulletin is retrieved directly from the author's website to ensure that the information is still current. Contact information for the authors of the original document is included in the Security Bulletin above. If you have any questions or need further information, please contact them directly. Previous advisories and external security bulletins can be retrieved from: http://www.auscert.org.au/render.html?cid=1980 If you believe that your computer system has been compromised or attacked in any way, we encourage you to let us know by completing the secure National IT Incident Reporting Form at: http://www.auscert.org.au/render.html?it=3192 Internet Email: firstname.lastname@example.org Facsimile: (07) 3365 7031 Telephone: (07) 3365 4417 (International: +61 7 3365 4417) AusCERT personnel answer during Queensland business hours which are GMT+10:00 (AEST). On call after hours for member emergencies only. -----BEGIN PGP SIGNATURE----- Comment: http://www.auscert.org.au/render.html?it=1967 iQCVAwUBP3ON4Sh9+71yA2DNAQFa9AP/RPDQk/ZP9zV1u+jSiI5rQsMre8ftCg4H /2rDRePMyONb6dRhUqSyCB8SDE6VXdB1VYklLqpnYQmLYm6HdLVfnFZcb4R14bMn RxekzTqCDCrKW99pJpcpBfvuLU1Hc9b/YLGmk7DXa26OPDQaGdrI6QOJ2jpGn9sV HA+fkZyVQ64= =ulKX -----END PGP SIGNATURE-----