]> Pileus Git - ~andy/fetchmail/blob - fetchmail-SA-2011-01.txt
6e01ddab9c84e5583a99c11050a43b6a14c1eb6c
[~andy/fetchmail] / fetchmail-SA-2011-01.txt
1 fetchmail-SA-2011-01: Denial of service possible in STARTTLS mode
2
3 Topics:         fetchmail denial of service in STARTTLS protocol phases
4
5 Author:         Matthias Andree
6 Version:        1.0
7 Announced:      2011-06-06
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:         (AV:N/AC:M/Au:S/C:N/I:N/A:C/E:U/RL:O/RC:C)
14 CVSS scores:    4.7: Base 6.3 (Impact 6.9 Exploitability 6.8) Temporal 4.7
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                 2011-06-06 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 2011-06-06 1.0  release
36
37
38 1. Background
39 =============
40
41 fetchmail is a software package to retrieve mail from remote POP3, IMAP,
42 ETRN or ODMR servers and forward it to local SMTP, LMTP servers or
43 message delivery agents. fetchmail supports SSL and TLS security layers
44 through the OpenSSL library, if enabled at compile time and if also
45 enabled at run time, in both SSL/TLS-wrapped mode on dedicated ports as
46 well as in-band-negotiated "STARTTLS" and "STLS" modes through the
47 regular protocol ports.
48
49
50 2. Problem description and Impact
51 =================================
52
53 Fetchmail version 5.9.9 introduced STLS support for POP3, version
54 6.0.0 added STARTTLS for IMAP. However, the actual S(TART)TLS-initiated
55 in-band SSL/TLS negotiation was not guarded by a timeout.
56
57 Depending on the operating system defaults as to TCP stream keepalive
58 mode, fetchmail hangs in excess of one week after sending STARTTLS were
59 observed if the connection failed without notifying the operating
60 system, for instance, through network outages or hard server crashes.
61
62 A malicious server that does not respond, at the network level, after
63 acknowledging fetchmail's STARTTLS or STLS request, can hold fetchmail
64 in this protocol state, and thus render fetchmail unable to complete the
65 poll, or proceed to the next server, effecting a denial of service.
66
67 SSL-wrapped mode on dedicated ports was unaffected by this problem, so
68 can be used as a workaround.
69
70
71 3. Solution
72 ===========
73
74 Install fetchmail 6.3.20 or newer.
75
76 The fetchmail source code is always available from
77 <http://developer.berlios.de/project/showfiles.php?group_id=1824>.
78
79 Distributors are encouraged to review the NEWS file and move forward to
80 6.3.20, rather than backport individual security fixes, because doing so
81 routinely misses other fixes crucial to fetchmail's proper operation,
82 for which no security announcements are issued.  Several such
83 (long-standing) bugs were fixed through recent releases, and an erratum
84 notice for SASL authentication was issued.
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
92 4. Workaround
93 =============
94
95 If supported by the server's configuration, fetchmail can be run in
96 ssl-wrapped rather than starttls mode. To that extent, the "ssl sslproto
97 ssl3" option must be configured (possibly replacing sslproto tls1 where
98 configured) to the rcfile, or "--ssl --sslproto ssl3" can be given on
99 the command line (where it applies to all poll configurations).
100
101 It is generally also advisable to enforce SSL certificate validation, by
102 either using --sslcertck on the command line, or using sslcertck in a
103 "default" configuration entry of the rcfile, or using sslcertck in
104 each of the relevant individual poll descriptions of the rcfile.
105
106
107 A. Copyright, License and Non-Warranty
108 ======================================
109
110 (C) Copyright 2011 by Matthias Andree, <matthias.andree@gmx.de>.
111 Some rights reserved.
112
113 This work is licensed under the Creative Commons
114 Attribution-Noncommercial-No Derivative Works 3.0 Germany License.
115 To view a copy of this license, visit
116 http://creativecommons.org/licenses/by-nc-nd/3.0/de/ or send a letter to
117
118 Creative Commons
119 171 Second Street
120 Suite 300
121 SAN FRANCISCO, CALIFORNIA 94105
122 USA
123
124
125 THIS WORK IS PROVIDED FREE OF CHARGE AND WITHOUT ANY WARRANTIES.
126 Use the information herein at your own risk.
127
128 END of fetchmail-SA-2011-01