1 fetchmail-SA-2011-01: Denial of service possible in STARTTLS mode
3 Topics: Denial of service in STARTTLS protocol phases
5 Author: Matthias Andree
8 Type: Unguarded blocking I/O can cause indefinite application hang
9 Impact: Denial of service
12 CVE Name: CVE-2011-1947
15 This is calculated without Environmental Score.
16 URL: http://www.fetchmail.info/fetchmail-SA-2011-01.txt
17 Project URL: http://www.fetchmail.info/
19 Affects: fetchmail releases 5.9.9 up to and including 6.3.19
21 Not affected: fetchmail release 6.3.20 and newer
23 Corrected in: 2011-05-26 Git, among others, see commit
24 7dc67b8cf06f74aa57525279940e180c99701314
26 2011-05-29 fetchmail 6.3.20-rc3 tarball (for testing)
28 pending fetchmail 6.3.20 release tarball
34 2011-05-30 0.1 first draft (visible in Git and through oss-security)
40 fetchmail is a software package to retrieve mail from remote POP3, IMAP,
41 ETRN or ODMR servers and forward it to local SMTP, LMTP servers or
42 message delivery agents. fetchmail supports SSL and TLS security layers
43 through the OpenSSL library, if enabled at compile time and if also
44 enabled at run time, in both SSL/TLS-wrapped mode on dedicated ports as
45 well as in-band-negotiated "STARTTLS" and "STLS" modes through the
46 regular protocol ports.
49 2. Problem description and Impact
50 =================================
52 Fetchmail version 5.9.9 introduced STLS support for POP3, version
53 6.0.0 added STARTTLS for IMAP. However, the actual S(TART)TLS-initiated
54 in-band SSL/TLS negotiation was not guarded by a timeout.
56 Depending on the operating system defaults as to TCP stream keepalive
57 mode, fetchmail hangs in excess of one week after sending STARTTLS were
58 observed if the connection failed without notifying the operating
59 system, for instance, through network outages or hard server crashes.
61 A malicious server that does not respond, at the network level, after
62 acknowledging fetchmail's STARTTLS or STLS request, can hold fetchmail
63 in this protocol state, and thus render fetchmail unable to complete the
64 poll, or proceed to the next server, effecting a denial of service.
66 SSL-wrapped mode on dedicated ports was unaffected by this problem, so
67 can be used as a workaround.
73 Install fetchmail 6.3.20 or newer after it will have become available.
74 (Note that the announcements may be publicly visible quite some time
75 before the release is made, particularly for minor bugs.)
77 The fetchmail source code is always available from
78 <http://developer.berlios.de/project/showfiles.php?group_id=1824>.
80 Distributors are encouraged to review the NEWS file and move forward to
81 6.3.20, rather than backport individual security fixes, because doing so
82 routinely misses other fixes crucial to fetchmail's proper operation,
83 for which no security announcements are issued. Several such
84 (long-standing) bugs were fixed through recent releases.
86 Fetchmail 6.3.X releases have always been made with a focus on unchanged
87 user and program interfaces so as to avoid disruptions when upgrading
88 from 6.3.X to 6.3.Y with Y > X. Care was taken to not change the
89 interface incompatibly.
91 There will be NO SUPPORT FOR BACKPORTING bug fixes to older releases!
97 A. If supported by the server's configuration, fetchmail can be run in
98 ssl-wrapped rather than starttls mode. To that extent, the "ssl sslproto
99 ssl3" option must be configured (possibly replacing sslproto tls1 where
100 configured) to the rcfile, or "--ssl --sslproto ssl3" can be given on
101 the command line (where it applies to all poll configurations).
102 It is generally advisable to use --sslcertck to enable SSL
103 certificate validation.
105 B. If the operating system supports setting all TCP sockets to keepalive
106 mode by default, and possibly lowering the delay until keepalive probes
107 start, enabling this configuration can protect against hangs through
108 silently broken connections, but not against a malicious server.
111 A. Copyright, License and Non-Warranty
112 ======================================
114 (C) Copyright 2011 by Matthias Andree, <matthias.andree@gmx.de>.
115 Some rights reserved.
117 This work is licensed under the Creative Commons
118 Attribution-Noncommercial-No Derivative Works 3.0 Germany License.
119 To view a copy of this license, visit
120 http://creativecommons.org/licenses/by-nc-nd/3.0/de/ or send a letter to
125 SAN FRANCISCO, CALIFORNIA 94105
129 THIS WORK IS PROVIDED FREE OF CHARGE AND WITHOUT ANY WARRANTIES.
130 Use the information herein at your own risk.
132 END of fetchmail-SA-2011-01