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

Bug#1010060: buster-pu: package mutt/1.10.1-2.1+deb10u6



Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: carnil@debian.org,antonio@debian.org

Hi SRM'ers, hi Antonio

I prepared an update for mutt, fixing CVE-2022-1328, a buffer-overflow
in uudecoder.

Performed a manual test with the poc mbox provided by Tavis in
https://gitlab.com/muttmua/mutt/-/issues/404 .

Attached is the debdiff respectively for the upload.

Regards,
Salvatore
diff -Nru mutt-1.10.1/debian/changelog mutt-1.10.1/debian/changelog
--- mutt-1.10.1/debian/changelog	2021-01-25 19:10:07.000000000 +0100
+++ mutt-1.10.1/debian/changelog	2022-04-23 15:00:14.000000000 +0200
@@ -1,3 +1,10 @@
+mutt (1.10.1-2.1+deb10u6) buster; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix uudecode buffer overflow (CVE-2022-1328) (Closes: #1009734)
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Sat, 23 Apr 2022 15:00:14 +0200
+
 mutt (1.10.1-2.1+deb10u5) buster-security; urgency=high
 
   * debian/patches:
diff -Nru mutt-1.10.1/debian/patches/series mutt-1.10.1/debian/patches/series
--- mutt-1.10.1/debian/patches/series	2021-01-25 19:10:07.000000000 +0100
+++ mutt-1.10.1/debian/patches/series	2022-04-23 15:00:14.000000000 +0200
@@ -19,3 +19,4 @@
 security/CVE-2020-28896.patch
 security/CVE-2021-3181.patch
 upstream/imap-preauth-and-ssh-tunnel.patch
+upstream/Fix-uudecode-buffer-overflow.patch
diff -Nru mutt-1.10.1/debian/patches/upstream/Fix-uudecode-buffer-overflow.patch mutt-1.10.1/debian/patches/upstream/Fix-uudecode-buffer-overflow.patch
--- mutt-1.10.1/debian/patches/upstream/Fix-uudecode-buffer-overflow.patch	1970-01-01 01:00:00.000000000 +0100
+++ mutt-1.10.1/debian/patches/upstream/Fix-uudecode-buffer-overflow.patch	2022-04-23 15:00:14.000000000 +0200
@@ -0,0 +1,43 @@
+From: Kevin McCarthy <kevin@8t8.us>
+Date: Tue, 5 Apr 2022 11:05:52 -0700
+Subject: Fix uudecode buffer overflow.
+Origin: https://gitlab.com/muttmua/mutt/-/commit/e5ed080c00e59701ca62ef9b2a6d2612ebf765a5
+Bug: https://gitlab.com/muttmua/mutt/-/issues/404
+Bug-Debian: https://bugs.debian.org/1009734
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2022-1328
+
+mutt_decode_uuencoded() used each line's initial "length character"
+without any validation.  It would happily read past the end of the
+input line, and with a suitable value even past the length of the
+input buffer.
+
+As I noted in ticket 404, there are several other changes that could
+be added to make the parser more robust.  However, to avoid
+accidentally introducing another bug or regression, I'm restricting
+this patch to simply addressing the overflow.
+
+Thanks to Tavis Ormandy for reporting the issue, along with a sample
+message demonstrating the problem.
+---
+ handler.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/handler.c b/handler.c
+index d1b4bc73a58f..c97cf0cb527e 100644
+--- a/handler.c
++++ b/handler.c
+@@ -404,9 +404,9 @@ static void mutt_decode_uuencoded (STATE *s, LOFF_T len, int istext, iconv_t cd)
+     pt = tmps;
+     linelen = decode_byte (*pt);
+     pt++;
+-    for (c = 0; c < linelen;)
++    for (c = 0; c < linelen && *pt;)
+     {
+-      for (l = 2; l <= 6; l += 2)
++      for (l = 2; l <= 6 && *pt && *(pt + 1); l += 2)
+       {
+ 	out = decode_byte (*pt) << l;
+ 	pt++;
+-- 
+2.35.2
+

Reply to: