Multiple Vulnerabilities in Snort Preprocessors (RPC, stream4)
18 Apr. 2003
There are two vulnerabilities in the Snort Intrusion Detection System, each in a separate preprocessor module. Both vulnerabilities allow remote attackers to execute arbitrary code with the privileges of the user running Snort typically root.
The information has been provided by CERT.
* Snort IDS, versions 1.8 through 2.0 RC1
The Snort intrusion detection system ships with a variety of preprocessor modules that allow the user to selectively include additional functionality. Researchers from two independent organizations have discovered vulnerabilities in two of these modules, the RPC preprocessor, and the "stream4" TCP fragment reassembly preprocessor.
VU#139129 - Heap overflow in Snort "stream4" preprocessor (CAN-2003-0029)
Researchers at CORE Security Technologies have discovered a remotely exploitable heap overflow in the Snort "stream4" preprocessor module. This module allows Snort to reassemble TCP packet fragments for further analysis.
To exploit this vulnerability, an attacker must disrupt the state tracking mechanism of the preprocessor module by sending a series of packets with crafted sequence numbers. This causes the module to bypass a check for buffer overflow attempts and allows the attacker to insert arbitrary code into the heap.
VU#916785 - Buffer overflow in Snort RPC preprocessor (CAN-2003-0033)
Researchers at Internet Security Systems (ISS) have discovered a remotely exploitable buffer overflow in the Snort RPC preprocessor module. Martin Roesch, primary developer for Snort, described the vulnerability as follows:
When the RPC decoder normalizes fragmented RPC records, it incorrectly checks the lengths of what is being normalized against the current packet size, leading to an overflow condition. The RPC preprocessor is enabled by default.
This vulnerability affects Snort versions 1.8.x through 1.9.1 and version 2.0 Beta.
Both VU#139129 and VU#916785 allow remote attackers to execute arbitrary code with the privileges of the user running Snort, typically root. In addition, it is not necessary for the attacker to know the IP address of the Snort device they wish to attack; merely sending malicious traffic where it can be observed by an affected Snort sensor is sufficient to exploit these vulnerabilities.
For information from other vendors that ship affected versions of Snort, please see Appendix A of this document.
Disable affected preprocessor modules
Sites that are unable to immediately upgrade affected Snort sensors may prevent exploitation of this vulnerability by commenting out the affected preprocessor modules in the "snort.conf" configuration file.
To prevent exploitation of VU#139129, comment out the following line: preprocessor stream4_reassemble
To prevent exploitation of VU#916785, comment out the following line: preprocessor rpc_decode: 111 32771
After commenting out the affected modules, send a SIGHUP signal to the affected Snort process to update the configuration. Note that disabling these modules may have adverse affects on a sensor's ability to correctly process RPC record fragments and TCP packet fragments. In particular, disabling the "stream4" preprocessor module will prevent the Snort sensor from detecting a variety of IDS evasion attacks.
Block outbound packets from Snort IDS systems
You may be able limit an attacker's capabilities if the system is compromised by blocking all outbound traffic from the Snort sensor. While this workaround will not prevent exploitation of the vulnerability, it may make it more difficult for the attacker to create a useful exploit.
Appendix A. - Vendor Information
This appendix contains information provided by vendors for this advisory. As vendors report new information to the CERT/CC, we will update this section and note the changes in our revision history. If a particular vendor is not listed below, we have not received their comments.
Apple Computer, Inc.
Snort is not shipped with Mac OS X or Mac OS X Server.
Ingrian Networks products are not susceptible to VU#139129 and VU#916785 since they do not use Snort.
Ingrian customers who are using the IDS Extender Service Engine to mirror cleartext data to a Snort-based IDS should upgrade their IDS software.
NetBSD does not include snort in the base system.
Snort is available from the 3rd party software system, pkgsrc. Users who have installed net/snort, net/snort-mysql or net/snort-pgsql should update to a fixed version. pkgsrc/security/audit-packages can be used to keep up to date with these types of issues.
Red Hat Inc.
Not vulnerable. Red Hat does not ship Snort in any of our supported products.
SGI does not ship snort as part of IRIX.
Snort 2.0 has undergone an external third party professional security audit funded by Sourcefire.