diff options
| -rw-r--r-- | fetchmail-SA-2007-02.txt | 72 | 
1 files changed, 59 insertions, 13 deletions
diff --git a/fetchmail-SA-2007-02.txt b/fetchmail-SA-2007-02.txt index 03affd77..74fc5558 100644 --- a/fetchmail-SA-2007-02.txt +++ b/fetchmail-SA-2007-02.txt @@ -1,21 +1,24 @@ -fetchmail-SA-2007-02: Crash when local warning message is rejected +fetchmail-SA-2007-02: Crash when a local warning message is rejected -Topics:		Crash when fetchmail-generated warning message is rejected +Topics:		Crash when a fetchmail-generated warning message is rejected  Author:		Matthias Andree -Version:	1.0 -Announced:	2007-07-29 +Version:	1.1 +Announced:	2007-08-28  Type:		NULL pointer dereference trigged by outside circumstances  Impact:		denial of service possible  Danger:		low +CVSS V2 vector: (AV:N/AC:M/Au:N/C:N/I:N/A:C/E:?/RL:O/RC:C) +		  Credits:	Earl Chew  CVE Name:	CVE-2007-4565  URL:		http://fetchmail.berlios.de/fetchmail-SA-2007-02.txt  Project URL:	http://fetchmail.berlios.de/ -Affects:	fetchmail release < 6.3.9 +Affects:	fetchmail release < 6.3.9 exclusively -Not affected:	fetchmail release 6.3.9 (not yet available) +Not affected:	fetchmail release 6.3.9 and newer +		fetchmail releases < 4.6.8 exclusively  Corrected:	2007-07-29 fetchmail SVN (rev 5119) @@ -24,6 +27,7 @@ Corrected:	2007-07-29 fetchmail SVN (rev 5119)  ==================  2007-07-29 1.0	first draft for MITRE/CVE (visible in SVN) +2007-08-28 1.1	reworked, added fix, official release  1. Background @@ -41,19 +45,42 @@ control) files for fetchmail.  2. Problem description and Impact  ================================= -fetchmail will generated warning messages to the local postmaster or user in -certain circumstances, for instance when authentication fails. +fetchmail will generate warning messages in certain circumstances and  +send them to the local postmaster or the user starting it. Such warning  +messages can be generated, for instance, if logging into an upstream  +server fails repeatedly or if messages beyond the size limit (if  +configured, default: no limit) are left on the server. -If this warning message is refused by the SMTP listener that fetchmail is -talking to, fetchmail attempts to dereference a NULL pointer when trying to find -out if it should allow a bounce message to be sent. +If this warning message is then refused by the SMTP listener that  +fetchmail is forwarding the message to, fetchmail attempts to  +dereference a NULL pointer when trying to find out if it should allow a  +bounce message to be sent. + +This causes fetchmail to crash and not collect further messages until it  +is restarted. + +Risk assessment: low. In default configuration, fetchmail will talk  +through the loopback interface, that is to the SMTP listener on the same  +computer as it is running on. Otherwise, it will commonly be configured  +to talk to trusted SMTP servers, so a compromise of misconfiguration of  +a trusted or the same computer is required to exploit this problem -  +which usually opens up much easier ways of denying service, or worse.  3. Solution  =========== -Install fetchmail 6.3.9 or newer.  The fetchmail source code is available from -<http://developer.berlios.de/project/showfiles.php?group_id=1824>. +There are two alternatives, either of them by itself is sufficient: + +a. Apply the patch found in section B of this announcement to fetchmail 6.3.8, +   recompile and reinstall it. + +b. Install fetchmail 6.3.9 or newer when it becomes available.  The  +   fetchmail source code is available from  +   <http://developer.berlios.de/project/showfiles.php?group_id=1824>. + +Note there are no workarounds presented here since all known workarounds  +are more intrusive than the actual solution.  A. Copyright, License and Warranty @@ -71,4 +98,23 @@ Stanford, California 94305; USA.  THIS WORK IS PROVIDED FREE OF CHARGE AND WITHOUT ANY WARRANTIES.  Use the information herein at your own risk. + + +B. Patch to remedy the problem +============================== + +Index: sink.c +=================================================================== +--- sink.c	(revision 5118) ++++ sink.c	(revision 5119) +@@ -262,7 +262,7 @@ +     const char *md1 = "MAILER-DAEMON", *md2 = "MAILER-DAEMON@"; +  +     /* don't bounce in reply to undeliverable bounces */ +-    if (!msg->return_path[0] || ++    if (!msg || !msg->return_path[0] || + 	strcmp(msg->return_path, "<>") == 0 || + 	strcasecmp(msg->return_path, md1) == 0 || + 	strncasecmp(msg->return_path, md2, strlen(md2)) == 0) +  END OF fetchmail-SA-2007-02.txt  | 
