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: