Merge lp:~ari-tczew/ubuntu/hardy/fetchmail/fix-CVE-2008-2711 into lp:ubuntu/hardy-security/fetchmail

Proposed by Artur Rona
Status: Work in progress
Proposed branch: lp:~ari-tczew/ubuntu/hardy/fetchmail/fix-CVE-2008-2711
Merge into: lp:ubuntu/hardy-security/fetchmail
Diff against target: 91 lines (+71/-0)
3 files modified
debian/changelog (+10/-0)
debian/patches/07_fix_CVE-2008-2711_DoS.patch (+60/-0)
debian/patches/series (+1/-0)
To merge this branch: bzr merge lp:~ari-tczew/ubuntu/hardy/fetchmail/fix-CVE-2008-2711
Reviewer Review Type Date Requested Status
Artur Rona Pending
Ubuntu branches Pending
Review via email: mp+22671@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

changing to "work in progress" so it stops being on the sponsoring list since the bug states that issue is not worth a security upload to hardy

Unmerged revisions

24. By Artur Rona

* SECURITY UPDATE: Corrects a denial of service attack that can crash
  fetchmail when running in -v -v mode via malformed mail messages
  with long headers (LP: #240549)
  - debian/patches/07_fix_CVE-2008-2711_DoS.patch: Taken from intrepid
  - CVE-2008-2711

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2009-08-11 12:03:52 +0000
+++ debian/changelog 2010-04-01 23:32:23 +0000
@@ -1,3 +1,13 @@
1fetchmail (6.3.8-10ubuntu1.2) hardy-security; urgency=low
2
3 * SECURITY UPDATE: Corrects a denial of service attack that can crash
4 fetchmail when running in -v -v mode via malformed mail messages
5 with long headers (LP: #240549)
6 - debian/patches/07_fix_CVE-2008-2711_DoS.patch: Taken from intrepid
7 - CVE-2008-2711
8
9 -- Artur Rona <ari-tczew@tlen.pl> Fri, 02 Apr 2010 00:41:08 +0200
10
1fetchmail (6.3.8-10ubuntu1.1) hardy-security; urgency=low11fetchmail (6.3.8-10ubuntu1.1) hardy-security; urgency=low
212
3 * SECURITY UPDATE: SSL cert validation bypass via NULL bytes.13 * SECURITY UPDATE: SSL cert validation bypass via NULL bytes.
414
=== added file 'debian/patches/07_fix_CVE-2008-2711_DoS.patch'
--- debian/patches/07_fix_CVE-2008-2711_DoS.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/07_fix_CVE-2008-2711_DoS.patch 2010-04-01 23:32:23 +0000
@@ -0,0 +1,60 @@
1From: Michael Casadevall <sonicmctails@gmail.com>
2Description: CVE-2008-2711 - fetchmail 6.3.8 and earlier, when running in -v -v (aka verbose) mode, allows remote attackers to cause a denial of service (crash and persistent mail failure) via a malformed mail message with long headers, which triggers an erroneous dereference when using vsnprintf to format log messages.
3Origin: http://fetchmail.berlios.de/fetchmail-SA-2008-01.txt
4Bug: https://launchpad.net/bugs/240549
5Author: Matthias Andree
6
7Index: fetchmail-6.3.8/report.c
8===================================================================
9--- fetchmail-6.3.8.orig/report.c 2008-10-21 08:22:29.000000000 -0400
10+++ fetchmail-6.3.8/report.c 2008-10-21 08:24:50.000000000 -0400
11@@ -238,11 +238,17 @@
12 rep_ensuresize();
13
14 #if defined(VA_START)
15- VA_START (args, message);
16 for ( ; ; )
17 {
18+ /*
19+ * args has to be initialized before every call of vsnprintf(),
20+ * because vsnprintf() invokes va_arg macro and thus args is
21+ * undefined after the call
22+ */
23+ VA_START (args, message);
24 n = vsnprintf (partial_message + partial_message_size_used, partial_message_size - partial_message_size_used,
25 message, args);
26+ va_end (args);
27
28 if (n >= 0
29 && (unsigned)n < partial_message_size - partial_message_size_used)
30@@ -254,7 +260,6 @@
31 partial_message_size += 2048;
32 partial_message = REALLOC (partial_message, partial_message_size);
33 }
34- va_end (args);
35 #else
36 for ( ; ; )
37 {
38@@ -304,12 +309,13 @@
39 rep_ensuresize();
40
41 #if defined(VA_START)
42- VA_START (args, message);
43 for ( ; ; )
44 {
45+ VA_START (args, message);
46 n = vsnprintf (partial_message + partial_message_size_used,
47 partial_message_size - partial_message_size_used,
48 message, args);
49+ va_end (args);
50
51 /* old glibc versions return -1 for truncation */
52 if (n >= 0
53@@ -322,7 +328,6 @@
54 partial_message_size += 2048;
55 partial_message = REALLOC (partial_message, partial_message_size);
56 }
57- va_end (args);
58 #else
59 for ( ; ; )
60 {
061
=== modified file 'debian/patches/series'
--- debian/patches/series 2009-08-11 12:03:52 +0000
+++ debian/patches/series 2010-04-01 23:32:23 +0000
@@ -3,3 +3,4 @@
303_capa_probe.patch303_capa_probe.patch
404_fix_CVE-2007-4565_DoS.patch404_fix_CVE-2007-4565_DoS.patch
506_cert_0_byte.patch506_cert_0_byte.patch
607_fix_CVE-2008-2711_DoS.patch

Subscribers

People subscribed via source and target branches

to all changes: