[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#921642: marked as done (stretch-pu: package libemail-address-perl/1.908-1+deb9u1)



Your message dated Sat, 16 Feb 2019 11:36:33 +0000
with message-id <1550316993.21192.50.camel@adam-barratt.org.uk>
and subject line Closing bugs for updates included in 9.8
has caused the Debian Bug report #921642,
regarding stretch-pu: package libemail-address-perl/1.908-1+deb9u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
921642: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921642
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: stretch
User: release.debian.org@packages.debian.org
Usertags: pu

Fixes CVE-2015-7686 and CVE-2018-1255 which are exposed by request-tracker4.
Candidate package deployed and working so far on a production system.
diff -Nru libemail-address-perl-1.908/debian/changelog libemail-address-perl-1.908/debian/changelog
--- libemail-address-perl-1.908/debian/changelog	2015-09-21 16:58:06.000000000 +0100
+++ libemail-address-perl-1.908/debian/changelog	2019-02-07 15:02:13.000000000 +0000
@@ -1,3 +1,10 @@
+libemail-address-perl (1.908-1+deb9u1) stretch; urgency=medium
+
+  * Team upload.
+  * [SECURITY]: Fix DoS vulnerabilities CVE-2015-7686 and CVE-2018-12558
+
+ -- Dominic Hargreaves <dom@earth.li>  Thu, 07 Feb 2019 15:02:13 +0000
+
 libemail-address-perl (1.908-1) unstable; urgency=medium
 
   * Team upload.
diff -Nru libemail-address-perl-1.908/debian/patches/CVE-2015-7686_CVE-2018-12558.patch libemail-address-perl-1.908/debian/patches/CVE-2015-7686_CVE-2018-12558.patch
--- libemail-address-perl-1.908/debian/patches/CVE-2015-7686_CVE-2018-12558.patch	1970-01-01 01:00:00.000000000 +0100
+++ libemail-address-perl-1.908/debian/patches/CVE-2015-7686_CVE-2018-12558.patch	2019-02-07 15:01:45.000000000 +0000
@@ -0,0 +1,125 @@
+Subject: Fixes for DoS vulnerabilities CVE-2015-7686 and CVE-2018-12558
+
+These are cherry-picked from 1.912, excluding packaging related changes
+
+diff --git a/lib/Email/Address.pm b/lib/Email/Address.pm
+index d169f6b..5d545e1 100644
+--- a/lib/Email/Address.pm
++++ b/lib/Email/Address.pm
+@@ -36,18 +47,18 @@ my $ctext          = qr/(?>[^()\\]+)/;
+ my ($ccontent, $comment) = (q{})x2;
+ for (1 .. $COMMENT_NEST_LEVEL) {
+   $ccontent = qr/$ctext|$quoted_pair|$comment/;
+-  $comment  = qr/\s*\((?:\s*$ccontent)*\s*\)\s*/;
++  $comment  = qr/(?>\s*\((?:\s*$ccontent)*\s*\)\s*)/;
+ }
+-my $cfws           = qr/$comment|\s+/;
++my $cfws           = qr/$comment|(?>\s+)/;
+ 
+ my $atext          = qq/[^$CTL$special\\s]/;
+-my $atom           = qr/$cfws*$atext+$cfws*/;
+-my $dot_atom_text  = qr/$atext+(?:\.$atext+)*/;
+-my $dot_atom       = qr/$cfws*$dot_atom_text$cfws*/;
++my $atom           = qr/(?>$cfws*$atext+$cfws*)/;
++my $dot_atom_text  = qr/(?>$atext+(?:\.$atext+)*)/;
++my $dot_atom       = qr/(?>$cfws*$dot_atom_text$cfws*)/;
+ 
+ my $qtext          = qr/[^\\"]/;
+ my $qcontent       = qr/$qtext|$quoted_pair/;
+-my $quoted_string  = qr/$cfws*"$qcontent*"$cfws*/;
++my $quoted_string  = qr/(?>$cfws*"$qcontent*"$cfws*)/;
+ 
+ my $word           = qr/$atom|$quoted_string/;
+ 
+@@ -63,15 +74,15 @@ my $word           = qr/$atom|$quoted_string/;
+ # So we disallow the hateful CFWS in this context for now.  Of modern mail
+ # agents, only Apple Web Mail 2.0 is known to produce obs-phrase.
+ # -- rjbs, 2006-11-19
+-my $simple_word    = qr/$atom|\.|\s*"$qcontent+"\s*/;
+-my $obs_phrase     = qr/$simple_word+/;
++my $simple_word    = qr/(?>$atom|\.|\s*"$qcontent+"\s*)/;
++my $obs_phrase     = qr/(?>$simple_word+)/;
+ 
+-my $phrase         = qr/$obs_phrase|(?:$word+)/;
++my $phrase         = qr/$obs_phrase|(?>$word+)/;
+ 
+ my $local_part     = qr/$dot_atom|$quoted_string/;
+ my $dtext          = qr/[^\[\]\\]/;
+ my $dcontent       = qr/$dtext|$quoted_pair/;
+-my $domain_literal = qr/$cfws*\[(?:\s*$dcontent)*\s*\]$cfws*/;
++my $domain_literal = qr/(?>$cfws*\[(?:\s*$dcontent)*\s*\]$cfws*)/;
+ my $domain         = qr/$dot_atom|$domain_literal/;
+ 
+ my $display_name   = $phrase;
+@@ -124,9 +135,9 @@ my $display_name   = $phrase;
+ #pod =cut
+ 
+ our $addr_spec  = qr/$local_part\@$domain/;
+-our $angle_addr = qr/$cfws*<$addr_spec>$cfws*/;
++our $angle_addr = qr/(?>$cfws*<$addr_spec>$cfws*)/;
+ our $name_addr  = qr/(?>$display_name?)$angle_addr/;
+-our $mailbox    = qr/(?:$name_addr|$addr_spec)$comment*/;
++our $mailbox    = qr/(?:$name_addr|$addr_spec)(?>$comment*)/;
+ 
+ sub _PHRASE   () { 0 }
+ sub _ADDRESS  () { 1 }
+@@ -208,7 +219,13 @@ sub parse {
+         return @cached;
+     }
+ 
+-    my (@mailboxes) = ($line =~ /$mailbox/go);
++    my %mailboxes;
++    my $str = $line;
++    $str =~ s!($name_addr(?>$comment*))!$mailboxes{pos($str)} = $1; ',' x length $1!ego
++        if $str =~ /$angle_addr/;
++    $str =~ s!($addr_spec(?>$comment*))!$mailboxes{pos($str)} = $1; ',' x length $1!ego;
++    my @mailboxes = map { $mailboxes{$_} } sort { $a <=> $b } keys %mailboxes;
++
+     my @addrs;
+     foreach (@mailboxes) {
+       my $original = $_;
+diff --git a/t/order.t b/t/order.t
+new file mode 100644
+index 0000000..e012667
+--- /dev/null
++++ b/t/order.t
+@@ -0,0 +1,13 @@
++use strict;
++use warnings;
++
++use Test::More;
++use Email::Address;
++
++my @emails = ( q{"foo" <foo@example.com>}, q{bar@example.com}, q{"baz" <baz@example.com>}, q{baz@example.com} );
++my @addr = Email::Address->parse( join ', ', @emails );
++
++is( scalar @addr, scalar @emails, "correct number of emails" );
++is_deeply( \@addr, \@emails, 'correct order of emails' );
++
++done_testing;
+diff --git a/t/pathological.t b/t/pathological.t
+new file mode 100644
+index 0000000..a3ed1e6
+--- /dev/null
++++ b/t/pathological.t
+@@ -0,0 +1,20 @@
++use strict;
++use warnings;
++use Test::More;
++use Email::Address;
++use Time::HiRes 'time';
++
++my %cases = (
++    'CVE-2015-7686' =>
++        q{\(¯¯`·.¥«P®ÎÑç€ØfTh€ÐÅ®K»¥.·`¯¯\) <email@example.com>, "(> \" \" <)                              ( ='o'= )                              (\")___(\")  sWeEtAnGeLtHePrInCeSsOfThEsKy" <email2@example.com>, "(i)cRiStIaN(i)" <email3@example.com>, "(S)MaNu_vuOLeAmMazZaReNimOe(*)MiAo(@)" <email4@example.com>},
++    'CVE-2018-12558' => "\f" x 30,
++);
++
++for my $name ( sort keys %cases ) {
++    my $start = Time::HiRes::time();
++    Email::Address->parse( $cases{$name} );
++    my $time = Time::HiRes::time() - $start;
++    ok( $time < 0.5, "Parsing '$name' takes less than 0.5 second($time)" );
++}
++
++done_testing();
diff -Nru libemail-address-perl-1.908/debian/patches/series libemail-address-perl-1.908/debian/patches/series
--- libemail-address-perl-1.908/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ libemail-address-perl-1.908/debian/patches/series	2019-02-07 15:01:57.000000000 +0000
@@ -0,0 +1 @@
+CVE-2015-7686_CVE-2018-12558.patch

--- End Message ---
--- Begin Message ---
Version: 9.8

Hi,

The update referenced by each of these bugs was included in this
morning's stretch point release.

Regards,

Adam

--- End Message ---

Reply to: