Slashdot Mirror


Remote Code Execution Hole Found In Snort

Palljon1123 writes "A stack-based buffer overflow in the Snort intrusion detection system could leave government and enterprise installations vulnerable to remote unauthenticated code execution attacks. The flaw, found by researchers at IBM's ISS X-Force, affects the Snort DCE/RPC preprocessor and could be used to execute code with the same privileges (usually root or SYSTEM) as the Snort binary. No user action is required." Sourcefire has an update to fix the vulnerability in versions 2.6.1, 2.6.1.1, and 2.6.1.2; Heise Security spells out the workaround for the 2.7.0 beta version.

2 of 95 comments (clear)

  1. SANS by azakem · · Score: 4, Informative

    Also covering this one: SANS ICS

  2. Completely unnecessary by Vintermann · · Score: 4, Informative

    Why oh why are we in 2007 seeing code like this in security apps? input verification in the classical C way with pointer arithmetic on strings.
    (and no, the error isn't there, it's just the first thing I came across in the snort source)
    Why are they even using C? Suprise, they make exploitable buffer overflow attacks! And they still have one verified, non-fixed issue detected by coverity, plus 33 "uninspected and pending" according to coverity's scan.


    int CheckRule(char *str)
    {
            int len;
            int got_paren = 0;
            int got_semi = 0;
            char *index;

            len = strlen(str);

            index = str + len - 1; /* go to the end of the string */

            while((isspace((int)*index)))
            {
                    if(index > str)
                            index--;
                    else
                            return 0;
            } /* the last non-whitspace character should be a ')' */
            if(*index == ')')
            {
                    got_paren = 1;
                    index--;
            }

            while((isspace((int)*index)))
            {
                    if(index > str)
                            index--;
                    else
                            return 0;
            } /* the next to last char should be a semicolon */
            if(*index == ';') ...

    --
    xkcd is not in the sudoers file. This incident will be reported.