copyright | disclaimer | privacy | contact  
Australia's Leading Computer Emergency Response Team
 
Search this site

 
On this site

 > HOME
 > About AusCERT
 > Membership
 > Contact Us
 > PKI Services
 > Training
 > Publications
 > Sec. Bulletins
 > Conferences
 > News & Media
 > Services
 > Web Log
 > Site Map
 > Site Help
 > Member login





 

ESB-2005.0575 -- UNIRAS ALERT - 12/05 -- NISCC Vulnerability Advisory ICMP - 532967

Date: 20 July 2005
References: ESB-2005.0305  ESB-2005.0312  ESB-2005.0356  ESB-2005.0363  ESB-2005.0409  ESB-2005.0570  ESB-2005.0644  ESB-2006.0004  AA-2006.0080  

Click here for printable version
Click here for PGP verifiable version
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

===========================================================================
             AUSCERT External Security Bulletin Redistribution

                   ESB-2005.0575 -- UNIRAS ALERT - 12/05
                NISCC Vulnerability Advisory ICMP - 532967
                               20 July 2005

===========================================================================

        AusCERT Security Bulletin Summary
        ---------------------------------

Publisher:         UNIRAS
Impact:            Denial of Service
Access:            Remote/Unauthenticated
CVE Names:         CAN-2004-1060 CAN-2004-0791 CAN-2004-0790

Ref:               ESB-2005.0305
                   ESB-2005.0312
                   ESB-2005.0363
                   ESB-2005.0356
                   ESB-2005.0409
                   ESB-2005.0570

Original Bulletin: 
  http://www.uniras.gov.uk/niscc/docs/al-20050412-00308.html

- --------------------------BEGIN INCLUDED TEXT--------------------

- -----------------------------------------------------------------------------------
      UNIRAS (UK Govt CERT) ALERT - 12/05 dated 12.04.05  Time: 13:00  
 UNIRAS is part of NISCC (National Infrastructure Security Co-ordination Centre)
- ----------------------------------------------------------------------------------- 
  UNIRAS material is also available from its website at www.uniras.gov.uk and
         Information about NISCC is available from www.niscc.gov.uk
- -----------------------------------------------------------------------------------

Title
=====
NISCC Vulnerability Advisory ICMP - 532967

Detail
====== 

NISCC Vulnerability Advisory 532967/NISCC/ICMP

Vulnerability Issues in ICMP packets with TCP payloads


Version Information
- --------------------
 
Advisory Reference	532967/NISCC/ICMP	   
Release Date		12 April 2005  
Last Revision		12 April 2005	   
Version Number		1.0

	 
What is Affected?
- ------------------

The vulnerabilities described in this advisory affect the TCP (Transmission Control 
Protocol) by using Internet Control Message Protocol (ICMP) messages that comply with the 
Internet Engineering Task Force's (IETF's) Requests For Comments (RFCs) for ICMP, including 
RFC 792 "Internet Control Message Protocol: DARPA Internet Program Protocol Specification" 
(for IP Version 4), RFC 1122, "Requirements for Internet Hosts -- Communication Layers" and 
potentially RFC 2463 "Internet Control Message Protocol (ICMPv6) for the Internet Protocol 
Version 6 (IPv6) Specification" (for IP Version 6). The original TCP specification is 
provided in RFC 793. 

ICMP is the control protocol for IP (Internet Protocol), a core network protocol used in the 
majority of networked computer systems today. Most vendors include support for this protocol 
in their products and may be impacted to varying degrees. Furthermore any network service or 
application that relies on a long-lived TCP connection will also be impacted if the host 
processes ICMP messages in accordance with RFC 1122. For the Source Quench attack the 
severity will depend on the throughput of the TCP connection; the application may well 
become unusable. 


Severity
- ---------

The impact of the ICMP TCP reset vulnerability (called "the TCP blind connection-reset 
vulnerability" in this advisory) varies by vendor and application, but in some deployment 
scenarios it is likely to be rated medium to high. Please see the 'Vendor Information' 
section below for further information. Alternatively contact your vendor for product 
specific information.

If exploited, the TCP blind connection-reset vulnerability could allow an attacker to create 
a denial-of-service condition against existing TCP connections, resulting in premature 
session termination. The resulting session termination will affect the application layer, 
the nature and severity of the effects being dependent on the application layer protocol. 
The primary dependency is on the tolerance of the network service or application to the loss 
of a TCP connection.

The Border Gateway Protocol (BGP) is judged to be potentially most affected by this 
vulnerability. BGP relies on a persistent TCP connection between BGP peers; resetting the 
connection can result in medium term unavailability due to the need to rebuild routing 
tables and route flapping. Route flapping may result in route dampening (suppression) if the 
route flaps occur frequently within a short time interval. The overall impact on BGP is 
likely to be low to moderate based on the likelihood of successful attack, but could be high 
if an ICMP implementation does not perform any checks on the ICMP payload.
 
If an access control list is applied at routers to block packets of ICMP Type 3 codes 2, 3 
and 4 then the impact will be low as this measure will successfully mitigate the 
vulnerability. Anti-spoofing measures can also be of benefit if the attacker spoofs the IP 
address from where the ICMP packet is sent. Anti-spoofing measures include access control 
lists to block non-routable IP addresses (see RFCs 1918 and 3330) and Unicast Reverse Path 
Forwarding (URPF) that checks the consistency of the source IP address with the interface on 
which the packets are received. See NISCC Technical Note 06/02 "Response to Distributed 
Denial-of-Service (DDoS) Attacks" for further details. 

There is a potential impact on other application protocols such as DNS (Domain Name System) 
and SSL (Secure Sockets Layer) in the case of zone transfers and ecommerce transactions 
respectively, but the sessions can be restarted without medium term unavailability problems. 
In the case of DNS the TCP connections are short lived, so the chance of the vulnerability 
being exploited is lower than for long lived TCP connections. In the case of SSL it may be 
difficult to guess the source IP address because it could be dynamically allocated home user 
address (in the case of Internet banking).

The severity of the related issue of slowing down routers that use Path MTU discovery is 
also likely to be moderate to high in some vendors' products because RFC 792 and RFC 1191 
("Path MTU discovery") do not specify checking of sequence numbers.

The severity of the spoofing of ICMP Source Quench packets is likely to be moderate to low 
because the support of routers for Source Quench as a means of congestion control has been 
deprecated for ten years. RFC 1812 section 5.3.6 states: "As described in Section [4.3.3.3], 
this document recommends that a router SHOULD NOT send a Source Quench to the sender of the 
packet that it is discarding. ICMP Source Quench is a very weak mechanism, so it is not 
necessary for a router to send it, and host software should not use it exclusively as an 
indicator of congestion." On the other hand, RFC 1122 section 4.2.3.9 states that "TCP MUST 
react to a Source Quench by slowing transmission on the connection", a statement honoured in
 a number of TCP implementations. To mitigate Source Quench attacks using spoofed IP 
addresses in the payload, ICMP Source Quench (ICMP Type 4) messages should not be allowed 
through routers or through firewalls at the organisational perimeter. It is reasonable to 
allow routers to block Source Quench packets if their use is deprecated. 


Summary
- --------

The first issue described in this advisory is the practicability of resetting an established
TCP connection by sending suitable ICMP packets that simulate a hard error condition in an 
existing TCP connection. Hard error conditions are defined in RFC 1122 section 4.2.3.9 and 
include a number of common ICMP types. An ICMP error packet records the IP header of the 
packet causing the error as well as the first 64 bits of the TCP header, which consists of 
the source and destination ports and the sequence number. Many ICMP implementations only 
check the IP addresses and TCP ports at either end of the connection; they do not check 
whether the sequence number of the packet is within an acceptable range (see 'Details' 
section below for characterisation of this range). 

It is thus possible in some implementations for an attacker to reset an existing TCP 
connection by sending a suitably crafted ICMP packet with the correct IP addresses and TCP 
ports. The target of these denial-of-service attacks is any TCP connection, especially one 
for which the source port can be identified or guessed. Moreover any application protocol 
which relies on long term TCP connections and for which the source and destination IP 
addresses and TCP ports are known or can be easily guessed will be vulnerable to 
denial-of-service attacks.

A related, subsidiary issue is the potential ability to slow down traffic through hosts that
 use Path MTU discovery (defined in RFC 1191) by sending forged ICMP Type 3 Code 4 
("Fragmentation Needed and Don't Fragment was Set") packets that report a (false) low 
"next-hop MTU" to a host using the Path MTU discovery mechanism.  

The third issue described in this advisory is the practicability of slowing the traffic 
between two hosts by sending ICMP Source Quench packets to an endpoint of the session. The 
technique used is to send a Source Quench packet including the details of the TCP connection 
to be targeted. According to RFC 1122, the Source Quench packet will limit the rate of the 
TCP connection.

It is possible to apply the TCP blind connection-reset vulnerability to ICMP Version 6 
packets (the control protocol of IP Version 6) by equating hard errors to ICMPv6 Type 1 
(Destination Unreachable) codes 1 (communication with destination administratively 
prohibited) and 4 (port unreachable). The Path MTU discovery attack could be affected by 
sending an ICMPv6 Type 2 code 0 ("Packet Too Big") packet, which does not describe a hard 
error but is used to determine end to end path MTU. Source quench is not defined in RFC 2463 
for ICMPv6. Since IP Version 6 was not defined when RFC 1122 was written, the discussion in 
this advisory will concentrate on IP Version 4. Further details of how the attacks apply to 
IP Version 6 is available in Fernando Gont's Internet Draft "ICMP attacks against TCP".


Details
- --------

532967/NISCC/ICMP/1
CVE number: CAN-2004-0790

RFC 1122 section 4.2.3.9 refers to some ICMP message types as representing hard errors. 
These message types are ICMP Type 3 (Destination Unreachable) codes 2 (Protocol 
Unreachable), 3 (Port Unreachable) and 4 (Fragmentation Needed and Don't Fragment was Set). 
For hard errors, according to RFC 1122 the TCP implementation should abort the connection. 
Thus by sending an ICMP Type 3, code 2, 3 or 4 with the IP header and the first 64 bits of 
the header of a TCP as its payload (the source and destination TCP ports and the sequence 
number), the receiving TCP implementation would reset the existing connection if it did not 
check that the sequence number was as expected.

It should be noted that the current RFCs do not recommend that TCP implementations check the 
sequence number. In section 5.1 of his Internet Draft "ICMP attacks against TCP" Fernando 
Gont states: "TCP SHOULD check that the sequence number in the TCP header contained in the 
payload of the ICMP error message is within the range SND.UNA <= SEG.SEQ < SND.NXT. This 
means that the sequence number should be within the range of the data already sent but not 
yet acknowledged. If an ICMP error message doesn't pass this check, it SHOULD be discarded." 
Here SND.UNA is the oldest unacknowledged sequence number, SEG.SEQ is the sequence number 
contained in the payload of the ICMP error message, and SND.NXT is the next sequence number 
to be sent. There is a dependency on the TCP window size as without scaling (see RFC 1323) 
the range of unacknowledged sequence numbers can be in the range SND.UNA to SND.NXT-1.  

532967/NISCC/ICMP/2
CVE number: CAN-2004-1060

In the case where a host complies with RFC 1191 ("Path MTU Discovery"), it is possible to 
use the blind connection-reset attack with a ICMP Type 3 Code 4 packet and the addition of 
the "next-hop MTU" field in the ICMP header set to a value of 68 (octets) to slow down the 
transmission rate for traffic from the host.

NISCC/532967/ICMP/3
CVE number: CAN-2004-0791

RFC 1122 section 4.2.3.9 states "TCP MUST react to a Source Quench by slowing transmission 
on the connection. The RECOMMENDED procedure is for a Source Quench to trigger a "slow 
start," as if a retransmission timeout had occurred." Thus by sending an ICMP Type 4 (Source 
Quench) packet to a host with the IP header and the first 64 bits of the header of a TCP as 
its payload, the receiving TCP implementation would rate limit the existing connection if it 
did not check that the sequence number was expected. As noted above, the current RFCs do not 
recommend that TCP implementations check the sequence number.


Mitigation
- -----------

The main impact of the TCP blind connection-reset vulnerability is on applications that are 
intolerant of loss of a TCP session, such as BGP. In this case applying an access control 
list to block ICMP Type 3 code 2, 3 and 4 packets to BGP routers will be an effective 
mitigation, as will the use of anti-spoofing measures in the case that the ICMP packet 
inducing the reset is sent from a spoofed IP address.

In the case of hosts which use Path MTU discovery, the only mitigation is to disable the use 
of the Path MTU discovery mechanism until the vendor provides a security patch. 

The Source Quench vulnerability can be mitigated by applying an access control list blocking 
ICMP Type 4 packets on routers and by blocking ICMP Type 4 packets to corporate networks at 
the organisational boundary. Again, anti-spoofing measures such as URPF and access control 
lists blocking private, non-routable IP addresses at routers will also provide some 
protection if the source IP address of the ICMP packet is spoofed.


Solution
- ---------

General solutions to the vulnerabilities are described in section 5 of Fernando Gont's 
Internet Draft "ICMP attacks against TCP" (see 
http://www.ietf.org/internet-drafts/draft-gont-tcpm-icmp-attacks-03.txt). These solutions 
include:

- - - Checking that the TCP sequence number is within the range of the data already sent but not 
yet acknowledged

- - - (On routers) checking that the TCP acknowledgement number is in the range of the last 
sequence number acknowledged to the next sequence number expected

- - - Randomising source (ephemeral client) port numbers (making the port number more difficult 
to guess)

- - - Providing authentication mechanisms for ICMP messages to ensure that an ICMP message is 
processed only if it is correctly authenticated

- - - Ingress and egress filtering on the IP addresses and TCP ports in the payload of ICMP 
packets

- - - Changing the behaviour of a TCP implementation when the ICMP message is not expected to 
cause a soft rather than a hard error

- - - Delaying the TCP connection reset until an ICMP error message indicating a hard error has 
been received a specified number of times

- - - To protect against resets against Path MTU Discovery, delay the handling of a ICMP Type 3 
Code 4 ("packet too big" error) packets in the case where the Path MTU has already been 
negotiated, i.e. where larger packets sizes have been already sent and acknowledged

- - - Changing the handling of ICMP hard error messages for connections in synchronized states 
to ignore the messages during the life of a connection or to treat them as soft errors

- - - Ignoring Source Quench ICMP packets

Please refer to the 'Vendor Information' section of this advisory for implementation 
specific remediation.


Credits
- --------

This issue was discovered by Fernando Gont (UTN/FRH) and is the subject of an Internet draft
by the same author; "ICMP attacks against TCP" (see 
http://www.ietf.org/internet-drafts/draft-gont-tcpm-icmp-attacks-03.txt). The latest version 
of the Internet Draft can be obtained from
http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html.

NISCC wishes to thank Fernando Gont for bringing this vulnerability to our attention and for
agreeing to allow NISCC to co-ordinate the disclosure of this issue. NISCC also wishes to 
thanks Fernando for his comments on this advisory.


Vendor Information
- -------------------

A list of vendors affected by this vulnerability is not currently available. Please visit 
the web site (http://www.niscc.gov.uk/niscc/docs/re-20050412-00303.pdf?lang=en) in order to check for updates.


What is NISCC?
- ---------------

For further information regarding the UK National Infrastructure Security Co-Ordination 
Centre, please visit the NISCC web site at: http://www.niscc.gov.uk.

Reference to any specific commercial product, process or service by trade name, trademark 
manufacturer or otherwise, does not constitute or imply its endorsement, recommendation, or 
favouring by NISCC. The views and opinions of authors expressed within this notice shall not 
be used for advertising or product endorsement purposes.

Neither shall NISCC accept responsibility for any errors or omissions contained within this 
advisory. In particular, they shall not be liable for any loss or damage whatsoever, arising 
from or in connection with the usage of information contained within this notice.

C 2005 Crown Copyright

<End of NISCC Vulnerability Advisory>

- -----------------------------------------------------------------------------------
UNIRAS wishes to acknowledge the contributions of The NISCC Vulnerability Team for 
the information contained in this Briefing. 
- -----------------------------------------------------------------------------------


- --------------------------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 auscert@auscert.org.au
and we will forward your request to the appropriate person.

NOTE: Third Party Rights
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

===========================================================================
Australian Computer Emergency Response Team
The University of Queensland
Brisbane
Qld 4072

Internet Email: auscert@auscert.org.au
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

iQCVAwUBQt2qCyh9+71yA2DNAQJEDwP/Qm+xnJBs4JyJgyxw7i/Zuwh3U4tyq2Ud
4gM7EvZqY+4LKxY8+nb7kqTqc1KZ/yiHzet9o6XWLgV1POsbaTUUE+x1Hzcqsv0q
EwU8Ja3Uta5ueLP7eehbyFoadFBiH/nqLtHU2OWkyqn3ImNrGHx7fLYKw8giufhC
o4Xw4PktB+c=
=Bu0v
-----END PGP SIGNATURE-----