Package: sasl2-bin
Version: 2.1.22.dfsg1-17
Severity: important
Tags: patch

Upstream has fixed a bug where usernames/passwords containing double
quote characters would cause saslauthd to enter an infinite loop,
causing denial of service. This could be considered a local attack
vector, if users can alter their passwords.

Upstream has produced the following patch:
https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/sasl/saslauthd/auth_rimap.c.diff?r1=1.12;r2=1.13

I'm also attaching the patch to this submission.

-- 
Fabian Fagerholm <[EMAIL PROTECTED]>
--- src/sasl/saslauthd/auth_rimap.c	2006/04/06 20:19:54	1.12
+++ src/sasl/saslauthd/auth_rimap.c	2008/01/23 19:54:54	1.13
@@ -53,7 +53,7 @@
  * END SYNOPSIS */
 
 #ifdef __GNUC__
-#ident "$Id: auth_rimap.c,v 1.12 2006/04/06 20:19:54 jeaton Exp $"
+#ident "$Id: auth_rimap.c,v 1.13 2008/01/23 19:54:54 murch Exp $"
 #endif
 
 /* PUBLIC DEPENDENCIES */
@@ -162,6 +162,7 @@ qstring (
     num_quotes = 0;
     p1 = s;
     while ((p1 = strchr(p1, '"')) != NULL) {
+	p1++;
 	num_quotes++;
     }
     
@@ -438,7 +439,7 @@ auth_rimap (
 	syslog(LOG_WARNING, "auth_rimap: writev: %m");
 	memset(qlogin, 0, strlen(qlogin));
 	free(qlogin);
-	memset(qpass, 0, strlen(qlogin));
+	memset(qpass, 0, strlen(qpass));
 	free(qpass);
 	(void)close(s);
 	return strdup(RESP_IERROR);
@@ -447,7 +448,7 @@ auth_rimap (
     /* don't need these any longer */
     memset(qlogin, 0, strlen(qlogin));
     free(qlogin);
-    memset(qpass, 0, strlen(qlogin));
+    memset(qpass, 0, strlen(qpass));
     free(qpass);
 
     /* read and parse the LOGIN response */

Reply via email to