Bug#812585: exim4: Exim crashing when comparing password created with "htpaswwd" without "-d" -- segmentation fault.

Leszek Dubiel leszek.dubiel at dubielvitrum.pl
Mon Jan 25 10:35:15 UTC 2016


Package: exim4
Version: 4.84-8+deb8u2
Severity: important
Tags: upstream

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

Here's the script to reproduce error: 

	#!/bin/bash 

	exec 2>&1

	printf '' >/tmp/mypassfile
	echo "fooboo" | htpasswd -d -i /tmp/mypassfile john1 
	echo "fooboo" | htpasswd    -i /tmp/mypassfile john2
	echo "xxxyyy" | htpasswd -d -i /tmp/mypassfile john3
	echo "xxxyyy" | htpasswd    -i /tmp/mypassfile john4
	cat /tmp/mypassfile
	printf "\n\n"

	for u in john1 john2 john3 john4; do 
		for p in fooboo xxxyyy; do 
			echo "user=$u, pass=$p"
					     exim -be '${lookup{'"$u"'}lsearch{/tmp/mypassfile}{$value}{*}}'
			exim -be '${if crypteq{'"$p"'}{${lookup{'"$u"'}lsearch{/tmp/mypassfile}{$value}{*}}}{ok and suceed}{ok but failed}}'
			echo
		done
	done 

and heres my output: 

	Adding password for user john1
	Adding password for user john2
	Adding password for user john3
	Adding password for user john4
	john1:Wob0SnzzkZiR6
	john2:$apr1$4ONta6/3$ST0PLD7TaDxfYEnSbPpoy1
	john3:Bvn4WIUEUqpK6
	john4:$apr1$4hCz.Hp.$HhHC6yULqW1TEUGuC0bsS1


	user=john1, pass=fooboo
	Wob0SnzzkZiR6
	ok and suceed

	user=john1, pass=xxxyyy
	Wob0SnzzkZiR6
	ok but failed

	user=john2, pass=fooboo
	$apr1$4ONta6/3$ST0PLD7TaDxfYEnSbPpoy1
	./reproduce_exim_segmentation_fault_on_crypteq: line 14: 28257 Segmentation fault      exim -be '${if crypteq{'"$p"'}{${lookup{'"$u"'}lsearch{/tmp/mypassfile}{$value}{*}}}{ok and suceed}{ok but failed}}'

	user=john2, pass=xxxyyy
	$apr1$4ONta6/3$ST0PLD7TaDxfYEnSbPpoy1
	./reproduce_exim_segmentation_fault_on_crypteq: line 14: 28261 Segmentation fault      exim -be '${if crypteq{'"$p"'}{${lookup{'"$u"'}lsearch{/tmp/mypassfile}{$value}{*}}}{ok and suceed}{ok but failed}}'

	user=john3, pass=fooboo
	Bvn4WIUEUqpK6
	ok but failed

	user=john3, pass=xxxyyy
	Bvn4WIUEUqpK6
	ok and suceed

	user=john4, pass=fooboo
	$apr1$4hCz.Hp.$HhHC6yULqW1TEUGuC0bsS1
	./reproduce_exim_segmentation_fault_on_crypteq: line 14: 28273 Segmentation fault      exim -be '${if crypteq{'"$p"'}{${lookup{'"$u"'}lsearch{/tmp/mypassfile}{$value}{*}}}{ok and suceed}{ok but failed}}'

	user=john4, pass=xxxyyy
	$apr1$4hCz.Hp.$HhHC6yULqW1TEUGuC0bsS1
	./reproduce_exim_segmentation_fault_on_crypteq: line 14: 28279 Segmentation fault      exim -be '${if crypteq{'"$p"'}{${lookup{'"$u"'}lsearch{/tmp/mypassfile}{$value}{*}}}{ok and suceed}{ok but failed}}'




*** End of the template - remove these template lines ***


-- Package-specific info:
Exim version 4.84 #3 built 15-Dec-2015 04:18:37
Copyright (c) University of Cambridge, 1995 - 2014
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2014
Berkeley DB: Berkeley DB 5.3.28: (September  9, 2013)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM PRDR OCSP
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /etc/exim4/exim4.conf
# /etc/exim4/update-exim4.conf.conf
#
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
#
# Please note that this is _not_ a dpkg-conffile and that automatic changes
# to this file might happen. The code handling this will honor your local
# changes, so this is usually fine, but will break local schemes that mess
# around with multiple versions of the file.
#
# update-exim4.conf uses this file to determine variable values to generate
# exim configuration macros for the configuration file.
#
# Most settings found in here do have corresponding questions in the
# Debconf configuration, but not all of them.
#
# This is a Debian specific file

dc_eximconfig_configtype='smarthost'
dc_other_hostnames='dubielvitrum.pl'
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='192.168.18.0/24'
dc_smarthost='mail.dubielvitrum.pl'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
mailname:dubielvitrum.pl

-- System Information:
Debian Release: 8.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 3.16.0-4-686-pae (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

Versions of packages exim4 depends on:
ii  debconf [debconf-2.0]  1.5.56
ii  exim4-base             4.84-8+deb8u2
ii  exim4-daemon-light     4.84-8+deb8u2

exim4 recommends no packages.

exim4 suggests no packages.

-- debconf information:
  exim4/drec:



More information about the Pkg-exim4-maintainers mailing list