]> Pileus Git - ~andy/fetchmail/blob - fetchmail-SA-2011-01.txt
Merge branch 'common-6x' into legacy_63
[~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 Acknowledgment: Thomas Jarosch for sending detailed report
12
13 CVE Name:       CVE-2011-1947
14 CVSSv2:         (AV:N/AC:M/Au:S/C:N/I:N/A:C/E:U/RL:O/RC:C)
15 CVSS scores:    4.7: Base 6.3 (Impact 6.9 Exploitability 6.8) Temporal 4.7
16                 This is calculated without Environmental Score.
17 URL:            http://www.fetchmail.info/fetchmail-SA-2011-01.txt
18 Project URL:    http://www.fetchmail.info/
19
20 Affects:        fetchmail releases 5.9.9 up to and including 6.3.19
21
22 Not affected:   fetchmail release 6.3.20 and newer
23
24 Corrected in:   2011-05-26 Git, among others, see commit
25                 7dc67b8cf06f74aa57525279940e180c99701314
26
27                 2011-05-29 fetchmail 6.3.20-rc3 tarball (for testing)
28
29                 2011-06-06 fetchmail 6.3.20 release tarball
30
31
32 0. Release history
33 ==================
34
35 2011-05-30 0.1  first draft (visible in Git and through oss-security)
36 2011-06-06 1.0  release
37
38
39 1. Background
40 =============
41
42 fetchmail is a software package to retrieve mail from remote POP3, IMAP,
43 ETRN or ODMR servers and forward it to local SMTP, LMTP servers or
44 message delivery agents. fetchmail supports SSL and TLS security layers
45 through the OpenSSL library, if enabled at compile time and if also
46 enabled at run time, in both SSL/TLS-wrapped mode on dedicated ports as
47 well as in-band-negotiated "STARTTLS" and "STLS" modes through the
48 regular protocol ports.
49
50
51 2. Problem description and Impact
52 =================================
53
54 Fetchmail version 5.9.9 introduced STLS support for POP3, version
55 6.0.0 added STARTTLS for IMAP. However, the actual S(TART)TLS-initiated
56 in-band SSL/TLS negotiation was not guarded by a timeout.
57
58 Depending on the operating system defaults as to TCP stream keepalive
59 mode, fetchmail hangs in excess of one week after sending STARTTLS were
60 observed if the connection failed without notifying the operating
61 system, for instance, through network outages or hard server crashes.
62
63 A malicious server that does not respond, at the network level, after
64 acknowledging fetchmail's STARTTLS or STLS request, can hold fetchmail
65 in this protocol state, and thus render fetchmail unable to complete the
66 poll, or proceed to the next server, effecting a denial of service.
67
68 SSL-wrapped mode on dedicated ports was unaffected by this problem, so
69 can be used as a workaround.
70
71
72 3. Solution
73 ===========
74
75 Install fetchmail 6.3.20 or newer.
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, and an erratum
85 notice for SASL authentication was issued.
86
87 Fetchmail 6.3.X releases have always been made with a focus on unchanged
88 user and program interfaces so as to avoid disruptions when upgrading
89 from 6.3.X to 6.3.Y with Y > X.  Care was taken to not change the
90 interface incompatibly.
91
92
93 4. Workaround
94 =============
95
96 If supported by the server's configuration, fetchmail can be run in
97 ssl-wrapped rather than starttls mode. To that extent, the "ssl sslproto
98 ssl3" option must be configured (possibly replacing sslproto tls1 where
99 configured) to the rcfile, or "--ssl --sslproto ssl3" can be given on
100 the command line (where it applies to all poll configurations).
101
102 It is generally also advisable to enforce SSL certificate validation, by
103 either using --sslcertck on the command line, or using sslcertck in a
104 "default" configuration entry of the rcfile, or using sslcertck in
105 each of the relevant individual poll descriptions of the rcfile.
106
107
108 A. Copyright, License and Non-Warranty
109 ======================================
110
111 (C) Copyright 2011 by Matthias Andree, <matthias.andree@gmx.de>.
112 Some rights reserved.
113
114 This work is licensed under the Creative Commons
115 Attribution-Noncommercial-No Derivative Works 3.0 Germany License.
116 To view a copy of this license, visit
117 http://creativecommons.org/licenses/by-nc-nd/3.0/de/ or send a letter to
118
119 Creative Commons
120 171 Second Street
121 Suite 300
122 SAN FRANCISCO, CALIFORNIA 94105
123 USA
124
125
126 THIS WORK IS PROVIDED FREE OF CHARGE AND WITHOUT ANY WARRANTIES.
127 Use the information herein at your own risk.
128
129 END of fetchmail-SA-2011-01