Tuesday, September 13, 2005

Vulnerability in Snort 2.4.0 and Older

I read this news about a vulnerability in Snort 2.4.0 and older versions. You're affected if you process a malicious packet while in verbose mode. This means running Snort using the -v switch. Typically this is only used to visually inspect traffic and not for intrusion detection purposes.

Through the FrSIRT advisory I learned about the discovery of this vulnerability by A. Alejandro Hernández Hernández. An exploit is available to crash Snort. Interrupting program flow to control the system is not indicated at this time. The researcher used Fuzzball2 to send weird packets with Selective ACKnowledgement (SACK) options through Snort and find the exploit condition.

I am impressed by Sourcefire's response to this issue, as shown by the disclosure timeline:

  • Flaw Discovered: 20/08/2005.

  • Vendor Notification: 22/08/2005.

  • Vendor Response: 23/08/2005.

  • Date Published: 11/09/2005.

Sourcefire should have credited the researcher in their vulnerability announcement, however.

You can either upgrade via CVS, wait for Snort 2.4.1, or not run Snort in verbose mode.


srh said...

I bet this is the reason that the reporter was not credited.

Quote from Marty on snort-users mailing list:
"3) The guy who released the advisory for this relatively minor issue
decided to do so without coordination with the Snort project or
Sourcefire, even though we asked him to wait so we could coordinate.
Rolling out a Snort release is a complex series of events and we have
several other bug fixes that we're putting together for 2.4.1 (check
out CVS if you want to see the fixes) plus docs and so on that need
to go in there.

Fact of the matter is that this guy decided that responsible
disclosure wasn't necessary in this case and then decided to make a
big deal out of it (high risk my ass). Whatever. We'll get 2.4.1
out as soon as we can and that'll be that."

Anonymous said...

The thread on BugTraq between Marty and Justin on this vulnerability has been highly entertaining if not a little flamish now and then. I will say this. Marty did a great job of explaining how to go through the code and determine whether Justin's conclusions were accurate or not. I am not a real coder in any sense of the word but with a little effort I could follow his methodology and managed to learn a thing or two in the process. While I'm not sure if it is any consolation for Marty the thread was a worthwhile read for me.