[Pkg-samba-maint] r3591 - in branches/samba/lenny/debian: . patches

bubulle at alioth.debian.org bubulle at alioth.debian.org
Tue Sep 14 20:28:06 UTC 2010


tags 596891 pending
thanks

Author: bubulle
Date: 2010-09-14 20:28:01 +0000 (Tue, 14 Sep 2010)
New Revision: 3591

Added:
   branches/samba/lenny/debian/patches/security-CVE-2010-3069.patch
Modified:
   branches/samba/lenny/debian/changelog
   branches/samba/lenny/debian/patches/series
Log:
* Security update, fixing the following issue:
  - CVE-2019-3069: Buffer overrun vulnerability in sid_parse.
    Closes: #596891.

Modified: branches/samba/lenny/debian/changelog
===================================================================
--- branches/samba/lenny/debian/changelog	2010-09-14 20:01:55 UTC (rev 3590)
+++ branches/samba/lenny/debian/changelog	2010-09-14 20:28:01 UTC (rev 3591)
@@ -1,3 +1,11 @@
+samba (2:3.2.5-4lenny13) UNRELEASED; urgency=high
+
+  * Security update, fixing the following issue:
+    - CVE-2019-3069: Buffer overrun vulnerability in sid_parse.
+      Closes: #596891.
+
+ -- Christian Perrier <bubulle at debian.org>  Tue, 14 Sep 2010 22:24:59 +0200
+
 samba (2:3.2.5-4lenny12) stable-security; urgency=low
 
   * Security update, fix memory corruption vulnerability

Added: branches/samba/lenny/debian/patches/security-CVE-2010-3069.patch
===================================================================
--- branches/samba/lenny/debian/patches/security-CVE-2010-3069.patch	                        (rev 0)
+++ branches/samba/lenny/debian/patches/security-CVE-2010-3069.patch	2010-09-14 20:28:01 UTC (rev 3591)
@@ -0,0 +1,107 @@
+Goal: Fix buffer overrun in sid_parse
+
+Fixes: Upstream security fix. CVE-2010-3069
+
+Status wrt upstream: Fixed in 3.3.14, 3.4.9 and 3.5.5
+
+Author: Samba Team <security at samba.org>
+
+Index: lenny/source/lib/util_sid.c
+===================================================================
+--- lenny.orig/source/lib/util_sid.c
++++ lenny/source/lib/util_sid.c
+@@ -408,6 +408,9 @@
+ 
+ 	sid->sid_rev_num = CVAL(inbuf, 0);
+ 	sid->num_auths = CVAL(inbuf, 1);
++	if (sid->num_auths > MAXSUBAUTHS) {
++		return false;
++	}
+ 	memcpy(sid->id_auth, inbuf+2, 6);
+ 	if (len < 8 + sid->num_auths*4)
+ 		return False;
+Index: lenny/source/libads/ldap.c
+===================================================================
+--- lenny.orig/source/libads/ldap.c
++++ lenny/source/libads/ldap.c
+@@ -1899,7 +1899,9 @@
+ 	for (i=0; values[i]; i++) {
+ 		DOM_SID sid;
+ 		fstring tmp;
+-		sid_parse(values[i]->bv_val, values[i]->bv_len, &sid);
++		if (!sid_parse(values[i]->bv_val, values[i]->bv_len, &sid)) {
++			continue;
++		}
+ 		printf("%s: %s\n", field, sid_to_fstring(tmp, &sid));
+ 	}
+ }
+Index: lenny/source/libsmb/cliquota.c
+===================================================================
+--- lenny.orig/source/libsmb/cliquota.c
++++ lenny/source/libsmb/cliquota.c
+@@ -117,7 +117,9 @@
+ 	}
+ #endif /* LARGE_SMB_OFF_T */
+ 	
+-	sid_parse(rdata+40,sid_len,&qt.sid);
++	if (!sid_parse(rdata+40,sid_len,&qt.sid)) {
++		return false;
++	}
+ 
+ 	qt.qtype = SMB_USER_QUOTA_TYPE;
+ 
+Index: lenny/source/smbd/nttrans.c
+===================================================================
+--- lenny.orig/source/smbd/nttrans.c
++++ lenny/source/smbd/nttrans.c
+@@ -1980,7 +1980,11 @@
+ 		/* unknown 4 bytes: this is not the length of the sid :-(  */
+ 		/*unknown = IVAL(pdata,0);*/
+ 
+-		sid_parse(pdata+4,sid_len,&sid);
++		if (!sid_parse(pdata+4,sid_len,&sid)) {
++			reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
++			return;
++		}
++
+ 		DEBUGADD(10, ("for SID: %s\n", sid_string_dbg(&sid)));
+ 
+ 		if (!sid_to_uid(&sid, &uid)) {
+@@ -2235,7 +2239,10 @@
+ 				break;
+ 			}
+ 
+-			sid_parse(pdata+8,sid_len,&sid);
++			if (!sid_parse(pdata+8,sid_len,&sid)) {
++				reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
++				return;
++			}
+ 
+ 			if (vfs_get_ntquota(fsp, SMB_USER_QUOTA_TYPE, &sid, &qt)!=0) {
+ 				ZERO_STRUCT(qt);
+@@ -2415,7 +2422,11 @@
+ 	}
+ #endif /* LARGE_SMB_OFF_T */
+ 
+-	sid_parse(pdata+40,sid_len,&sid);
++	if (!sid_parse(pdata+40,sid_len,&sid)) {
++		reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
++		return;
++	}
++
+ 	DEBUGADD(8,("SID: %s\n", sid_string_dbg(&sid)));
+ 
+ 	/* 44 unknown bytes left... */
+Index: lenny/source/include/includes.h
+===================================================================
+--- lenny.orig/source/include/includes.h
++++ lenny/source/include/includes.h
+@@ -1294,4 +1294,8 @@
+ 				  struct in6_addr ip);
+ #endif
+ 
++#ifndef MAXSUBAUTHS
++#define MAXSUBAUTHS 15 /* max sub authorities in a SID */
++#endif
++
+ #endif /* _INCLUDES_H */

Modified: branches/samba/lenny/debian/patches/series
===================================================================
--- branches/samba/lenny/debian/patches/series	2010-09-14 20:01:55 UTC (rev 3590)
+++ branches/samba/lenny/debian/patches/series	2010-09-14 20:28:01 UTC (rev 3591)
@@ -44,3 +44,4 @@
 bug_575951_upstream_6697.patch
 bug_538819_upstream_7021.patch
 security-CVE-2010-2063.patch
+security-CVE-2010-3069.patch





More information about the Pkg-samba-maint mailing list