5770113 2000-11-22 18:06 +0100 /71 rader/ Balazs Scheidler <bazsi@BALABIT.HU> Importerad: 2000-11-24 02:32 av Brevbäraren (som är implementerad i) Python Extern mottagare: BUGTRAQ@SECURITYFOCUS.COM Externa svar till: bazsi@BALABIT.HU Mottagare: Bugtraq (import) <13866> Ärende: DoS possibility in syslog-ng ------------------------------------------------------------ BalaBit security advisory Advisory ID: BB-2000/01 Package: syslog-ng Versions affected: versions prior to and including 1.4.8 Problem type: remote DoS attack Date: 2000-11-22 1) Background syslog-ng is a portable syslog implementation. Its highlights include regexp based log selection, TCP transport and more. For more information: http://www.balabit.hu/products/syslog-ng/ 2) Problem description When syslog-ng parses log messages a variable named "left" is used to store the remaining length of the log message. The priority part in the message should look like this: <6> When the line ends without the closing '>' this "left" variable becomes -1 due a to a bug. The remaining part of the message parsing routine checks if there's any characters left using the condition: left != 0, since -1 is not 0, this condition evaluates to true. Syslog-ng versions after 1.4.7 filters out \r and \n characters from log messages and replaces them with spaces to avoid cluttering logfiles. Due to a problem in the parsing of log messages, this character change may access unaccessible memory region. This causes a segmentation fault. So sending a "<6", terminated with a newline to one of the input channels causes a SIGSEGV. Prior to 1.4.7, this character change was not implemented, so mounting a DoS attack is not so trivial, but is still possible. (it's left to the reader as an exercise) It is believed that no other exploitation is possible. 3) Impact Sending a carefully crafted syslog packet may cause syslog-ng to exit with a Segmentation Fault. 4) Solution Upgrade syslog-ng to 1.4.9, which is a security upgrade, and changes nothing compared to 1.4.8 or apply this patch: diff -urN syslog-ng-1.4.8/src/log.c syslog-ng-1.4.9/src/log.c --- syslog-ng-1.4.8/src/log.c Tue Oct 10 15:05:52 2000 +++ syslog-ng-1.4.9/src/log.c Wed Nov 22 16:45:11 2000 @@ -67,8 +67,10 @@ left--; } lm->pri = pri; - src++; - left--; + if (left) { + src++; + left--; + } } else { lm->pri = LOG_USER | LOG_NOTICE; (5770113) --------------------------------(Ombruten) Bilaga (application/pgp-signature) i text 5770114 5770114 2000-11-22 18:06 +0100 /14 rader/ Balazs Scheidler <bazsi@BALABIT.HU> Importerad: 2000-11-24 02:32 av Brevbäraren (som är implementerad i) Python Extern mottagare: BUGTRAQ@SECURITYFOCUS.COM Externa svar till: bazsi@BALABIT.HU Mottagare: Bugtraq (import) <13867> Bilaga (text/plain) till text 5770113 Ärende: Bilaga till: DoS possibility in syslog-ng ------------------------------------------------------------ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iQEVAwUBOhv9FcGXIGCa+NCpAQG6uggApyBPwaxSJ2rkKzjG+lrhGUnJPQaa8RuN YBwVDuSHoY9GxB1AdGwEI00ubs9LahfrcYXO8HnaDxmoabpS1NjB5Xye4JVCgsAU 6+wUs1LE/oS9mHC44ysnmw/WCs1lAAWyvY6QmvV94MjJJv4sOpEF45Bo7+7B1B3C ZodsRuG+7V8B6BfX3fmuJic9/SziRcuoU4l3LCGYWR8t0ADy4qDXKa82YUE2CTSK FBLDy9SQbw9Wv8dXJ/u3S0vF6ELPT5XebCY4dFsEwadj0QJCgJj5iuJdl5+rTFuz WVGHCZdDxm/7ea9/bg4ei5f8txpgyShIWqf1fc23iepNJkUcw9mMdw== =OAJw -----END PGP SIGNATURE----- (5770114) ------------------------------------------