From freebsdntpd@oldach.net  Sun Feb  5 13:25:13 2006
Return-Path: <freebsdntpd@oldach.net>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 5876E16A420
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  5 Feb 2006 13:25:13 +0000 (GMT)
	(envelope-from freebsdntpd@oldach.net)
Received: from sep.oldach.net (sep.oldach.net [194.180.25.6])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3516243D46
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  5 Feb 2006 13:25:11 +0000 (GMT)
	(envelope-from freebsdntpd@oldach.net)
Received: from sep.oldach.net (localhost [127.0.0.1])
	by sep.oldach.net (8.13.4/8.13.4/hmo26jun05) with ESMTP id k15DP5wC043499
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 5 Feb 2006 14:25:06 +0100 (CET)
	(envelope-from freebsdntpd@oldach.net)
Received: (from hmo@localhost)
	by sep.oldach.net (8.13.4/8.13.4/Submit/hmo26jun05) id k15DP5hb043498
	for FreeBSD-gnats-submit@freebsd.org; Sun, 5 Feb 2006 14:25:05 +0100 (CET)
	(envelope-from freebsdntpd@oldach.net)
Received: from sep.oldach.net (localhost [127.0.0.1])
	by sep.oldach.net (8.13.4/8.13.4/hmo26jun05) with ESMTP id k15DMCeK043208
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Sun, 5 Feb 2006 14:22:12 +0100 (CET)
	(envelope-from hmo@sep.oldach.net)
Received: (from hmo@localhost)
	by sep.oldach.net (8.13.4/8.13.4/Submit/hmo26jun05) id k15DMBPL043207;
	Sun, 5 Feb 2006 14:22:11 +0100 (CET)
	(envelope-from hmo)
Message-Id: <200602051322.k15DMBPL043207@sep.oldach.net>
Date: Sun, 5 Feb 2006 14:22:11 +0100 (CET)
From: Helge Oldach <freebsdntpd@oldach.net>
Reply-To: Helge Oldach <freebsdntpd@oldach.net>
To: FreeBSD-gnats-submit@freebsd.org
Subject: contrib/ntp PARSE buffer overrun [patch]
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         92839
>Category:       bin
>Synopsis:       [patch] ntpd(8): contrib/ntp PARSE buffer overrun
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    roberto
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 05 13:30:03 GMT 2006
>Closed-Date:    Sun Sep 07 22:17:30 UTC 2008
>Last-Modified:  Fri Sep 12 22:30:04 UTC 2008
>Originator:     Helge Oldach
>Release:        FreeBSD 5.5-PRERELEASE i386
>Organization:
>Environment:

System: FreeBSD localhost 5.5-PRERELEASE FreeBSD 5.5-PRERELEASE #619: Sun Feb 5 11:24:48 CET 2006 toor@localhost:/usr/obj/usr/src/sys/HMO i386

>Description:

contrib/ntp/libparse/clk_rawdcf.c contains a buffer overrun due to lack
of bounds checking. This leads to obscure syslogging as below, and also
to ntpd core dumps:

Feb  5 05:00:23 sep ntpd[554]: parse: convert_rawdcf: parity check FAILED for "-##-#-####-###-RAD-LS1248124P12-812P-248121-412-811-481248P^B^D^H========================================= #		 57/tcp	   any private terminal access #PROBLEMS!============================================================== #		 57/udp	   any private terminal access xns-mail	 58/tcp	   #XNS Mail xns-mail	 58/udp	   #XNS Mail #		 59/tcp	   any private file service #		 59/udp	   any private file service ni-mail		 61/tcp	   #NI MAIL ni-mail		 61/udp	   #NI MAIL acas		 62/tcp	   #ACA Services acas		 62/udp	   #ACA Services whois++		 63/tcp whois++		 63/udp covia		 64/tcp	   #Communications Integrator (CI) covia		 64/udp	   #Communications Integrator (CI) tacacs-ds	 65/tcp	   #TACACS-Database Service tacacs-ds	 65/udp	   #TACACS-Database Service sql*net		 66/tcp	   #Oracle SQL*NET sql*net		 66/udp	   #Oracle SQL*NET bootps		 67/tcp	   dhcps	#Bootstrap Protocol Server bootps		 67/udp	   dhcps	#Bootstrap Pr!
 otocol Server bootpc		 68/tcp	   dhc

>How-To-Repeat:

System with RAWDCF receiver. This is usually a simple DCF-77 receiver
connected to a serial port. In my case, per /etc/ntp.conf:

# raw DCF77 receiver
server 127.127.8.0 mode 16 prefer

>Fix:

--- contrib/ntp/libparse/clk_rawdcf.c.ctm	Wed Aug 18 16:23:11 2004
+++ contrib/ntp/libparse/clk_rawdcf.c	Sun Feb  5 13:53:51 2006
@@ -207,7 +207,7 @@
 	register unsigned char *c = dcfprm->zerobits;
 	register int i;
 
-	parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%s\"\n", buffer));
+	parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%.*s\"\n", size, buffer));
 
 	if (size < 57)
 	{
@@ -225,7 +225,7 @@
 			 * we only have two types of bytes (ones and zeros)
 			 */
 #ifndef PARSEKERNEL
-			msyslog(LOG_ERR, "parse: convert_rawdcf: BAD DATA - no conversion for \"%s\"\n", buffer);
+			msyslog(LOG_ERR, "parse: convert_rawdcf: BAD DATA - no conversion for \"%.*s\"\n", size, buffer);
 #endif
 			return CVT_NONE;
 		}
@@ -298,7 +298,7 @@
 		 * bad format - not for us
 		 */
 #ifndef PARSEKERNEL
-		msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%s\"\n", buffer);
+		msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%.*s\"\n", size, buffer);
 #endif
 		return CVT_FAIL|CVT_BADFMT;
 	}

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->roberto 
Responsible-Changed-By: kris 
Responsible-Changed-When: Fri Feb 24 07:19:10 UTC 2006 
Responsible-Changed-Why:  
Assign to maintainer 

http://www.freebsd.org/cgi/query-pr.cgi?pr=92839 

From: freebsdntpd@oldach.net (Helge Oldach)
To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org
Cc: roberto@FreeBSD.org (Ollivier Robert)
Subject: Re: bin/92839: contrib/ntp PARSE buffer overrun [patch]
Date: Sat, 6 Sep 2008 08:04:01 +0200 (CEST)

 After Ollivier's recent update of ntp two buffer overruns still remain.
 The patch below fixes them:
 
 
 --- clk_rawdcf.c	2008-09-06 07:59:47.000000000 +0200
 +++ clk_rawdcf.c.ctm	2008-09-04 23:01:34.000000000 +0200
 @@ -229,7 +229,7 @@
  	unsigned char *c = dcfprm->zerobits;
  	int i;
  
 -	parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%.*s\"\n", size, buffer));
 +	parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%s\"\n", buffer));
  
  	if (size < 57)
  	{
 @@ -320,7 +320,7 @@
  		 * bad format - not for us
  		 */
  #ifndef PARSEKERNEL
 -		msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%.*s\"\n", size, buffer);
 +		msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%s\"\n", buffer);
  #endif
  		return CVT_FAIL|CVT_BADFMT;
  	}
State-Changed-From-To: open->closed 
State-Changed-By: roberto 
State-Changed-When: Sun Sep 7 22:16:50 UTC 2008 
State-Changed-Why:  
Patch applied again in current sources, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=92839 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/92839: commit references a PR
Date: Sun,  7 Sep 2008 22:16:10 +0000 (UTC)

 roberto     2008-09-07 22:15:41 UTC
 
   FreeBSD src repository
 
   Modified files:
     contrib/ntp/libparse clk_rawdcf.c 
   Log:
   SVN rev 182857 on 2008-09-07 22:15:41Z by roberto
   
   Merge from vendor/ntp/dist: r182856:
   
   Apply updated patch from bin/92839 to avoid two possible buffer overflows.
   
   PR:             bin/92839
   Submitted by:   Helge Oldach <freebsdntpd@oldach.net>
   
   Revision  Changes    Path
   1.3       +2 -2      src/contrib/ntp/libparse/clk_rawdcf.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/92839: commit references a PR
Date: Fri, 12 Sep 2008 22:19:07 +0000 (UTC)

 roberto     2008-09-12 22:18:35 UTC
 
   FreeBSD src repository
 
   Modified files:        (Branch: RELENG_7)
     contrib/ntp/libparse clk_rawdcf.c 
   Log:
   SVN rev 182990 on 2008-09-12 22:18:35Z by roberto
   
   MFH r182857:
     Apply updated patch from bin/92839 to avoid two possible buffer overflows.
   PR:             bin/92839
   Submitted by:   Helge Oldach <freebsdntpd@oldach.net>
   Approved by:    re (gnn)
   
   Revision      Changes    Path
   1.1.1.3.24.2  +2 -2      src/contrib/ntp/libparse/clk_rawdcf.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/92839: commit references a PR
Date: Fri, 12 Sep 2008 22:22:53 +0000 (UTC)

 roberto     2008-09-12 22:22:31 UTC
 
   FreeBSD src repository
 
   Modified files:        (Branch: RELENG_6)
     contrib/ntp/libparse clk_rawdcf.c 
   Log:
   SVN rev 182992 on 2008-09-12 22:22:31Z by roberto
   
   MFH r182857:
     Apply updated patch from bin/92839 to avoid two possible buffer overflows.
   
   PR:           bin/92839
   Submitted by: Helge Oldach <freebsdntpd@oldach.net>
   Approved by:  re (gnn)
   
   Revision      Changes    Path
   1.1.1.3.14.2  +2 -2      src/contrib/ntp/libparse/clk_rawdcf.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
