]> Pileus Git - ~andy/fetchmail/blob - fetchmail-SA-2011-01.txt
Add CVE name.
[~andy/fetchmail] / fetchmail-SA-2011-01.txt
1 fetchmail-SA-2011-01: Denial of service possible in STARTTLS mode
2
3 Topics:         Denial of service in STARTTLS protocol phases
4
5 Author:         Matthias Andree
6 Version:        XXX
7 Announced:      XXX
8 Type:           Unguarded blocking I/O can cause indefinite application hang
9 Impact:         Denial of service
10 Danger:         low
11
12 CVE Name:       CVE-2011-1947
13 CVSSv2:         
14 CVSS scores:    
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/
18
19 Affects:        fetchmail releases 5.9.9 up to and including 6.3.19
20
21 Not affected:   fetchmail release 6.3.20 and newer
22
23 Corrected in:   2011-05-26 Git, among others, see commit
24                 7dc67b8cf06f74aa57525279940e180c99701314
25
26                 2011-05-29 fetchmail 6.3.20-rc3 tarball (for testing)
27
28                 pending    fetchmail 6.3.20 release tarball
29
30
31 0. Release history
32 ==================
33
34 2011-05-30 0.1  first draft (visible in Git and through oss-security)
35
36
37 1. Background
38 =============
39
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.
47
48
49 2. Problem description and Impact
50 =================================
51
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.
55
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.
60
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.
65
66 SSL-wrapped mode on dedicated ports was unaffected by this problem, so
67 can be used as a workaround.
68
69
70 3. Solution
71 ===========
72
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.)
76
77 The fetchmail source code is always available from
78 <http://developer.berlios.de/project/showfiles.php?group_id=1824>.
79
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.
85
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.
90
91 There will be NO SUPPORT FOR BACKPORTING bug fixes to older releases!
92
93
94 4. Workaround
95 =============
96
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.
104
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.
109
110
111 A. Copyright, License and Non-Warranty
112 ======================================
113
114 (C) Copyright 2011 by Matthias Andree, <matthias.andree@gmx.de>.
115 Some rights reserved.
116
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
121
122 Creative Commons
123 171 Second Street
124 Suite 300
125 SAN FRANCISCO, CALIFORNIA 94105
126 USA
127
128
129 THIS WORK IS PROVIDED FREE OF CHARGE AND WITHOUT ANY WARRANTIES.
130 Use the information herein at your own risk.
131
132 END of fetchmail-SA-2011-01