ports/117796: [security update] mail/perdition to 1.17.1

Thomas Vogt thomas at bsdunix.ch
Sat Nov 3 21:20:02 UTC 2007


>Number:         117796
>Category:       ports
>Synopsis:       [security update] mail/perdition to 1.17.1
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 03 21:20:00 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Thomas Vogt
>Release:        FreeBSD 7.0-BETA1 i386
>Organization:
>Environment:
System: FreeBSD bert.mlan.solnet.ch 7.0-BETA1 FreeBSD 7.0-BETA1 #8: Sat Oct 20 00:36:10 CEST 2007 root at bert.mlan.solnet.ch:/usr/obj/usr/src/sys/BERT i386


	
>Description:
Perdition IMAP is affected by a format string bug in one of its IMAP output-string formatting functions. The bug allows the execution of arbitrary code on the affected server. A successful exploit does not require prior authentication.

Vulnerable versions: Perdition <= 1.17

>How-To-Repeat:
Example: perl -e 'print "abc%n\x00\n"' | nc perdition.example.com 143 
if you got NO error message you are vulnerable.

More information: http://www.sec-consult.com/300.html

>Fix:
Update to 1.17.1

diff -ruN  perdition.orig/Makefile perdition/Makefile
--- perdition.orig/Makefile	2007-08-10 15:49:44.000000000 +0200
+++ perdition/Makefile	2007-11-02 23:11:43.000000000 +0100
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	perdition
-PORTVERSION=	1.17
+PORTVERSION=	1.17.1
 CATEGORIES=	mail net security
 MASTER_SITES=	http://www.vergenet.net/linux/perdition/download/${PORTVERSION}/
 
@@ -31,7 +31,7 @@
 MAKE_ENV+=	DOCSDIR=${DOCSDIR}
 CONFIGURE_ARGS+=	--disable-daemon-map
 
-INSTALLS_SHLIB=	yes
+USE_LDCONFIG=	yes
 
 ##
 ## Available knobs:
@@ -122,7 +122,9 @@
 
 .if defined(WITH_OPENLDAP)
 USE_OPENLDAP=		YES
-CONFIGURE_ARGS+=	--enable-ldap --with-ldap-schema-directory=${LOCALBASE}/etc/openldap/schema/
+CONFIGURE_ARGS+=	--enable-ldap \
+			--with-ldap-schema-directory=${LOCALBASE}/etc/openldap/schema/ \
+			--disable-ldap-doc
 PLIST_SUB+=		OPENLDAP=""
 MAN8+=			perditiondb_ldap_makedb.8
 .else

diff -ruN perdition.orig/distinfo perdition/distinfo
--- perdition.orig/distinfo	2005-12-19 11:06:19.000000000 +0100
+++ perdition/distinfo	2007-11-02 15:36:44.000000000 +0100
@@ -1,3 +1,3 @@
-MD5 (perdition-1.17.tar.gz) = 6cef90e55bde9eb2d0a17acccb3516f3
-SHA256 (perdition-1.17.tar.gz) = 38f1bfe1cb7db8b16fc6a3febc293460b6a5ae49312c6a08b757c89b1ae73879
-SIZE (perdition-1.17.tar.gz) = 552149
+MD5 (perdition-1.17.1.tar.gz) = 5464c517f8be810519b6187b694c9d98
+SHA256 (perdition-1.17.1.tar.gz) = e2abd57aa76b106591056ef835e26816c71c3b39dc55bc3aeba6dfeefac7af26
+SIZE (perdition-1.17.1.tar.gz) = 638162


diff -ruN perdition.orig/pkg-plist  perdition/pkg-plist
--- perdition.orig/pkg-plist	2004-06-02 10:11:06.000000000 +0200
+++ perdition/pkg-plist	2007-11-02 23:16:43.000000000 +0100
@@ -9,6 +9,7 @@
 etc/perdition/popmap-dist
 etc/perdition/Makefile.popmap-dist
 etc/perdition/Makefile
+etc/pam.d/perdition
 include/jain.h
 lib/libjain.so.0
 lib/libjain.so

This files are diffs are from the perdition src code and should go to ports/mail/perdition/files. This are NOT diffs agains old perdition/files/*


--- etc/Makefile.in.orig	2007-11-02 15:37:51.000000000 +0100
+++ etc/Makefile.in	2007-11-02 15:38:45.000000000 +0100
@@ -78,7 +78,7 @@
   distclean-recursive maintainer-clean-recursive
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = perdition pam.d rc.d sysconfig
+DIST_SUBDIRS = perdition
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@



--- etc/perdition/Makefile.in.orig	2007-11-02 15:40:32.000000000 +0100
+++ etc/perdition/Makefile.in	2007-11-02 15:45:43.000000000 +0100
@@ -259,16 +259,16 @@
 	@list='$(perditionconf_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  f=$(am__strip_dir) \
-	  echo " $(perditionconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(perditionconfdir)/$$f'"; \
-	  $(perditionconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(perditionconfdir)/$$f"; \
+	  echo " $(perditionconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(perditionconfdir)/$$f-dist'"; \
+	  $(perditionconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(perditionconfdir)/$$f-dist"; \
 	done
 
 uninstall-perditionconfDATA:
 	@$(NORMAL_UNINSTALL)
 	@list='$(perditionconf_DATA)'; for p in $$list; do \
 	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(perditionconfdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(perditionconfdir)/$$f"; \
+	  echo " rm -f '$(DESTDIR)$(perditionconfdir)/$$f-dist'"; \
+	  rm -f "$(DESTDIR)$(perditionconfdir)/$$f-dist"; \
 	done
 tags: TAGS
 TAGS:



--- makebdb/Makefile.in.orig	2007-11-02 15:47:34.000000000 +0100
+++ makebdb/Makefile.in	2007-11-02 15:48:33.000000000 +0100
@@ -231,7 +231,7 @@
         options.c \
         options.h
 
-makebdb_LDADD = -L../libjain -L../libjain/.libs/ -ljain -ldb -lpopt \
+makebdb_LDADD = -L../libjain -L../libjain/.libs/ -ljain -ldb3 -lpopt \
 @dmalloc_lib@
 
 INCLUDES = -I$(top_srcdir)/libjain



--- perdition/Makefile.in.orig	Tue Dec  6 16:08:58 2005
+++ perdition/Makefile.in	Tue Dec  6 16:09:36 2005
@@ -560,8 +560,6 @@
 	for i in pop3 pop3s imap4 imap4s imaps; do \
 		(cd $(DESTDIR)$(sbindir) && rm -f perdition.$$i && \
 			ln -sf perdition perdition.$$i); \
-		(cd $(DESTDIR)$(mandir)/man8 && rm -f perdition.$$i && \
-			ln -sf perdition.8 perdition.$$i.8); \
 	done
 
 uninstall-local:




--- perdition/db/bdb/Makefile.in.orig	2007-11-02 15:49:39.000000000 +0100
+++ perdition/db/bdb/Makefile.in	2007-11-02 15:50:20.000000000 +0100
@@ -235,7 +235,7 @@
   perditiondb_bdb.h
 
 libperditiondb_bdb_la_LDFLAGS = -version-info 0:0:0
-libperditiondb_bdb_la_LIBADD = -ldb
+libperditiondb_bdb_la_LIBADD = -ldb3
 INCLUDES = \
   -I$(top_srcdir)/ \
   -I$(top_srcdir)/perdition \



--- perdition/db/posix_regex/Makefile.in.orig	2007-11-02 15:53:56.000000000 +0100
+++ perdition/db/posix_regex/Makefile.in	2007-11-02 15:55:31.000000000 +0100
@@ -355,16 +355,16 @@
 	@list='$(conf_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  f=$(am__strip_dir) \
-	  echo " $(confDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(confdir)/$$f'"; \
-	  $(confDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(confdir)/$$f"; \
+	  echo " $(confDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(confdir)/$$f-dist'"; \
+	  $(confDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(confdir)/$$f-dist"; \
 	done
 
 uninstall-confDATA:
 	@$(NORMAL_UNINSTALL)
 	@list='$(conf_DATA)'; for p in $$list; do \
 	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(confdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(confdir)/$$f"; \
+	  echo " rm -f '$(DESTDIR)$(confdir)/$$f-dist'"; \
+	  rm -f "$(DESTDIR)$(confdir)/$$f-dist"; \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)



Please delete this patches in /files:
patch-perdition::db::daemon::Makefile.in (not necessary anymore)
patch-perdition::Makefile.in (replaced by new patch-perdition-Makefile.in)
patch-perdition-db-ldap-perditiondb_ldap (not necessary anymore)
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list