svn commit: r239108 - releng/7.4 releng/7.4/contrib/bind9/lib/dns releng/7.4/sys/conf releng/8.1 releng/8.1/contrib/bind9/lib/dns releng/8.1/sys/conf releng/8.2 releng/8.2/contrib/bind9/lib/dns rel...

Simon L. Nielsen simon at FreeBSD.org
Mon Aug 6 21:33:12 UTC 2012


Author: simon
Date: Mon Aug  6 21:33:11 2012
New Revision: 239108
URL: http://svn.freebsd.org/changeset/base/239108

Log:
  Fix named(8) DNSSEC validation Denial of Service.
  
  Security:	FreeBSD-SA-12:05.bind
  Security:	CVE-2012-3817
  Obtained from:	ISC
  Approved by:	so (simon)

Modified:
  releng/7.4/UPDATING
  releng/7.4/contrib/bind9/lib/dns/resolver.c
  releng/7.4/sys/conf/newvers.sh
  releng/8.1/UPDATING
  releng/8.1/contrib/bind9/lib/dns/resolver.c
  releng/8.1/sys/conf/newvers.sh
  releng/8.2/UPDATING
  releng/8.2/contrib/bind9/lib/dns/resolver.c
  releng/8.2/sys/conf/newvers.sh
  releng/8.3/UPDATING
  releng/8.3/contrib/bind9/lib/dns/resolver.c
  releng/8.3/sys/conf/newvers.sh
  releng/9.0/UPDATING
  releng/9.0/contrib/bind9/lib/dns/resolver.c
  releng/9.0/sys/conf/newvers.sh

Changes in other areas also in this revision:
Modified:
  stable/7/contrib/bind9/lib/dns/resolver.c

Modified: releng/7.4/UPDATING
==============================================================================
--- releng/7.4/UPDATING	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/7.4/UPDATING	Mon Aug  6 21:33:11 2012	(r239108)
@@ -8,6 +8,9 @@ Items affecting the ports and packages s
 /usr/ports/UPDATING.  Please read that file before running
 portupgrade.
 
+20120806:	p10	FreeBSD-SA-12:05.bind
+	Fix named(8) DNSSEC validation Denial of Service.
+
 20120612:	p9	FreeBSD-SA-12:03.bind
 			FreeBSD-SA-12:04.sysret
 	Fix a problem where zero-length RDATA fields can cause named to crash.

Modified: releng/7.4/contrib/bind9/lib/dns/resolver.c
==============================================================================
--- releng/7.4/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/7.4/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:33:11 2012	(r239108)
@@ -7622,6 +7622,7 @@ dns_resolver_addbadcache(dns_resolver_t 
 		}
 		bad->type = type;
 		bad->hashval = hashval;
+		bad->expire = *expire;
 		isc_buffer_init(&buffer, bad + 1, name->length);
 		dns_name_init(&bad->name, NULL);
 		dns_name_copy(name, &bad->name, &buffer);
@@ -7633,8 +7634,8 @@ dns_resolver_addbadcache(dns_resolver_t 
 		if (resolver->badcount < resolver->badhash * 2 &&
 		    resolver->badhash > DNS_BADCACHE_SIZE)
 			resizehash(resolver, &now, ISC_FALSE);
-	}
-	bad->expire = *expire;
+	} else
+		bad->expire = *expire;
  cleanup:
 	UNLOCK(&resolver->lock);
 }

Modified: releng/7.4/sys/conf/newvers.sh
==============================================================================
--- releng/7.4/sys/conf/newvers.sh	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/7.4/sys/conf/newvers.sh	Mon Aug  6 21:33:11 2012	(r239108)
@@ -32,7 +32,7 @@
 
 TYPE="FreeBSD"
 REVISION="7.4"
-BRANCH="RELEASE-p9"
+BRANCH="RELEASE-p10"
 if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi

Modified: releng/8.1/UPDATING
==============================================================================
--- releng/8.1/UPDATING	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.1/UPDATING	Mon Aug  6 21:33:11 2012	(r239108)
@@ -16,6 +16,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	sun4v support still needs work to become production ready.
 
 
+20120806:	p13	FreeBSD-SA-12:05.bind
+	Fix named(8) DNSSEC validation Denial of Service.
+
 20120618:	p12	FreeBSD-SA-12:04.sysret
 	Correct patch for FreeBSD-SA-12:04.sysret.
 

Modified: releng/8.1/contrib/bind9/lib/dns/resolver.c
==============================================================================
--- releng/8.1/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.1/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:33:11 2012	(r239108)
@@ -7929,6 +7929,7 @@ dns_resolver_addbadcache(dns_resolver_t 
 		}
 		bad->type = type;
 		bad->hashval = hashval;
+		bad->expire = *expire;
 		isc_buffer_init(&buffer, bad + 1, name->length);
 		dns_name_init(&bad->name, NULL);
 		dns_name_copy(name, &bad->name, &buffer);
@@ -7940,8 +7941,8 @@ dns_resolver_addbadcache(dns_resolver_t 
 		if (resolver->badcount < resolver->badhash * 2 &&
 		    resolver->badhash > DNS_BADCACHE_SIZE)
 			resizehash(resolver, &now, ISC_FALSE);
-	}
-	bad->expire = *expire;
+	} else
+		bad->expire = *expire;
  cleanup:
 	UNLOCK(&resolver->lock);
 }

Modified: releng/8.1/sys/conf/newvers.sh
==============================================================================
--- releng/8.1/sys/conf/newvers.sh	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.1/sys/conf/newvers.sh	Mon Aug  6 21:33:11 2012	(r239108)
@@ -32,7 +32,7 @@
 
 TYPE="FreeBSD"
 REVISION="8.1"
-BRANCH="RELEASE-p12"
+BRANCH="RELEASE-p13"
 if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi

Modified: releng/8.2/UPDATING
==============================================================================
--- releng/8.2/UPDATING	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.2/UPDATING	Mon Aug  6 21:33:11 2012	(r239108)
@@ -15,6 +15,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	debugging tools present in HEAD were left in place because
 	sun4v support still needs work to become production ready.
 
+20120806:	p10	FreeBSD-SA-12:05.bind
+	Fix named(8) DNSSEC validation Denial of Service.
+
 20120612:	p9	FreeBSD-SA-12:03.bind
 			FreeBSD-SA-12:04.sysret
 			FreeBSD-EN-12:02.ipv6refcount

Modified: releng/8.2/contrib/bind9/lib/dns/resolver.c
==============================================================================
--- releng/8.2/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.2/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:33:11 2012	(r239108)
@@ -7936,6 +7936,7 @@ dns_resolver_addbadcache(dns_resolver_t 
 		}
 		bad->type = type;
 		bad->hashval = hashval;
+		bad->expire = *expire;
 		isc_buffer_init(&buffer, bad + 1, name->length);
 		dns_name_init(&bad->name, NULL);
 		dns_name_copy(name, &bad->name, &buffer);
@@ -7947,8 +7948,8 @@ dns_resolver_addbadcache(dns_resolver_t 
 		if (resolver->badcount < resolver->badhash * 2 &&
 		    resolver->badhash > DNS_BADCACHE_SIZE)
 			resizehash(resolver, &now, ISC_FALSE);
-	}
-	bad->expire = *expire;
+	} else
+		bad->expire = *expire;
  cleanup:
 	UNLOCK(&resolver->lock);
 }

Modified: releng/8.2/sys/conf/newvers.sh
==============================================================================
--- releng/8.2/sys/conf/newvers.sh	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.2/sys/conf/newvers.sh	Mon Aug  6 21:33:11 2012	(r239108)
@@ -32,7 +32,7 @@
 
 TYPE="FreeBSD"
 REVISION="8.2"
-BRANCH="RELEASE-p9"
+BRANCH="RELEASE-p10"
 if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi

Modified: releng/8.3/UPDATING
==============================================================================
--- releng/8.3/UPDATING	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.3/UPDATING	Mon Aug  6 21:33:11 2012	(r239108)
@@ -15,6 +15,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	debugging tools present in HEAD were left in place because
 	sun4v support still needs work to become production ready.
 
+20120806:	p4	FreeBSD-SA-12:05.bind
+	Fix named(8) DNSSEC validation Denial of Service.
+
 20120612:	p3	FreeBSD-SA-12:03.bind
 			FreeBSD-SA-12:04.sysret
 			FreeBSD-EN-12:02.ipv6refcount

Modified: releng/8.3/contrib/bind9/lib/dns/resolver.c
==============================================================================
--- releng/8.3/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.3/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:33:11 2012	(r239108)
@@ -7991,6 +7991,7 @@ dns_resolver_addbadcache(dns_resolver_t 
 			goto cleanup;
 		bad->type = type;
 		bad->hashval = hashval;
+		bad->expire = *expire;
 		isc_buffer_init(&buffer, bad + 1, name->length);
 		dns_name_init(&bad->name, NULL);
 		dns_name_copy(name, &bad->name, &buffer);
@@ -8002,8 +8003,8 @@ dns_resolver_addbadcache(dns_resolver_t 
 		if (resolver->badcount < resolver->badhash * 2 &&
 		    resolver->badhash > DNS_BADCACHE_SIZE)
 			resizehash(resolver, &now, ISC_FALSE);
-	}
-	bad->expire = *expire;
+	} else
+		bad->expire = *expire;
  cleanup:
 	UNLOCK(&resolver->lock);
 }

Modified: releng/8.3/sys/conf/newvers.sh
==============================================================================
--- releng/8.3/sys/conf/newvers.sh	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/8.3/sys/conf/newvers.sh	Mon Aug  6 21:33:11 2012	(r239108)
@@ -32,7 +32,7 @@
 
 TYPE="FreeBSD"
 REVISION="8.3"
-BRANCH="RELEASE-p3"
+BRANCH="RELEASE-p4"
 if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi

Modified: releng/9.0/UPDATING
==============================================================================
--- releng/9.0/UPDATING	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/9.0/UPDATING	Mon Aug  6 21:33:11 2012	(r239108)
@@ -9,6 +9,9 @@ handbook.
 Items affecting the ports and packages system can be found in
 /usr/ports/UPDATING.  Please read that file before running portupgrade.
 
+20120806:	p4	FreeBSD-SA-12:05.bind
+	Fix named(8) DNSSEC validation Denial of Service.
+
 20120612:	p3	FreeBSD-SA-12:03.bind
 			FreeBSD-SA-12:04.sysret
 			FreeBSD-EN-12:02.ipv6refcount

Modified: releng/9.0/contrib/bind9/lib/dns/resolver.c
==============================================================================
--- releng/9.0/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/9.0/contrib/bind9/lib/dns/resolver.c	Mon Aug  6 21:33:11 2012	(r239108)
@@ -8318,6 +8318,7 @@ dns_resolver_addbadcache(dns_resolver_t 
 			goto cleanup;
 		bad->type = type;
 		bad->hashval = hashval;
+		bad->expire = *expire;
 		isc_buffer_init(&buffer, bad + 1, name->length);
 		dns_name_init(&bad->name, NULL);
 		dns_name_copy(name, &bad->name, &buffer);
@@ -8329,8 +8330,8 @@ dns_resolver_addbadcache(dns_resolver_t 
 		if (resolver->badcount < resolver->badhash * 2 &&
 		    resolver->badhash > DNS_BADCACHE_SIZE)
 			resizehash(resolver, &now, ISC_FALSE);
-	}
-	bad->expire = *expire;
+	} else
+		bad->expire = *expire;
  cleanup:
 	UNLOCK(&resolver->lock);
 }

Modified: releng/9.0/sys/conf/newvers.sh
==============================================================================
--- releng/9.0/sys/conf/newvers.sh	Mon Aug  6 21:24:43 2012	(r239107)
+++ releng/9.0/sys/conf/newvers.sh	Mon Aug  6 21:33:11 2012	(r239108)
@@ -32,7 +32,7 @@
 
 TYPE="FreeBSD"
 REVISION="9.0"
-BRANCH="RELEASE-p3"
+BRANCH="RELEASE-p4"
 if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi


More information about the svn-src-all mailing list