Your message dated Sat, 19 Jun 2021 10:56:39 +0100
with message-id 
<5c65c3ad2ac9b1b1f78bf73b1cf073041e619b51.ca...@adam-barratt.org.uk>
and subject line Closing p-u requests for fixes included in 10.10 point release
has caused the Debian Bug report #989668,
regarding buster-pu: package isync/1.3.0-2.2~deb10u1
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 [email protected]
immediately.)


-- 
989668: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989668
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: buster
User: [email protected]
Usertags: pu
X-Debbugs-Cc: [email protected]

Hi Stable release managers,

I would like to propose to include in the upcoming point release an
isync update, versioned as 1.3.0-2.2~deb10u1, which is a rebuild of
the version in unstable containing two CVE fixes.

I decided to opt for the rebuild including the CVE fixes because the
only other change in 1.3.0-2.1 was the debian/watch switch to the
https URL.

[ Reason ]
Fix for CVE-2021-3578 and CVE-2021-20247 for buster.

[ Impact ]
We keep CVE-2021-3578 and CVE-2021-20247 affecting buster. The CVEs on
the other hand are not warranting a DSA.

[ Tests ]
None specifically.

[ Risks ]
We apply the same changes as in unstable, and TTBOMK no regression
reports were reported. The update was acked to be unblocked to
testing.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
Apply the upstream fixes for CVE-2021-3578 and CVE-2021-20247,
additionally Ondrej Novy updated the debian/watch used URL to use
HTTPS.

[ Other info ]
None

Regards,
Salvatore
diff -Nru isync-1.3.0/debian/changelog isync-1.3.0/debian/changelog
--- isync-1.3.0/debian/changelog        2018-09-02 19:31:35.000000000 +0200
+++ isync-1.3.0/debian/changelog        2021-06-09 21:21:48.000000000 +0200
@@ -1,3 +1,31 @@
+isync (1.3.0-2.2~deb10u1) buster; urgency=medium
+
+  * Non-maintainer upload.
+  * Rebuild for buster
+
+ -- Salvatore Bonaccorso <[email protected]>  Wed, 09 Jun 2021 21:21:48 +0200
+
+isync (1.3.0-2.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * fix handling of unexpected APPENDUID response code (CVE-2021-3578)
+    (Closes: #989564)
+
+ -- Salvatore Bonaccorso <[email protected]>  Mon, 07 Jun 2021 21:03:56 +0200
+
+isync (1.3.0-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Ondřej Nový ]
+  * d/watch: Use https protocol
+
+  [ Salvatore Bonaccorso ]
+  * reject funny mailbox names from IMAP LIST/LSUB (CVE-2021-20247)
+    (Closes: #983351)
+
+ -- Salvatore Bonaccorso <[email protected]>  Mon, 22 Feb 2021 21:09:21 +0100
+
 isync (1.3.0-2) unstable; urgency=medium
 
   * Update vcs-* to point to salsa.d.o
diff -Nru 
isync-1.3.0/debian/patches/fix-handling-of-unexpected-APPENDUID-response-code--1.3.patch
 
isync-1.3.0/debian/patches/fix-handling-of-unexpected-APPENDUID-response-code--1.3.patch
--- 
isync-1.3.0/debian/patches/fix-handling-of-unexpected-APPENDUID-response-code--1.3.patch
    1970-01-01 01:00:00.000000000 +0100
+++ 
isync-1.3.0/debian/patches/fix-handling-of-unexpected-APPENDUID-response-code--1.3.patch
    2021-06-09 21:21:48.000000000 +0200
@@ -0,0 +1,80 @@
+From 5fbed519180f155a017a438e479b6268b74b9526 Mon Sep 17 00:00:00 2001
+From: Oswald Buddenhagen <[email protected]>
+Date: Wed, 14 Apr 2021 16:58:27 +0200
+Subject: [PATCH] fix handling of unexpected APPENDUID response code
+
+if the code was sent in response to anything but a STORE, we'd overwrite
+a data pointer in one of our imap_cmd subclasses, an allocator data
+structure, or the start of the next allocation, with an int that was
+completely under the server's control. it's plausible that this could be
+exploited for remote code execution.
+
+to avoid this, we could ensure that the object is of the right type
+prior to casting, by using a new flag in the parameter block. but it's
+easier to just dispose of the out_uid field altogether and reuse the uid
+field that is present in the parameter block anyway, but was used only
+for FETCH commands so far.
+
+this problem was found by Lukas Braun <[email protected]> using a
+fuzzer.
+---
+ src/drv_imap.c | 19 ++++++++++++++-----
+ 1 file changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/src/drv_imap.c b/src/drv_imap.c
+index fbe2fed..4cc3b2a 100644
+--- a/src/drv_imap.c
++++ b/src/drv_imap.c
+@@ -181,7 +181,6 @@ typedef struct {
+       imap_cmd_t gen;
+       void (*callback)( int sts, uint uid, void *aux );
+       void *callback_aux;
+-      uint out_uid;
+ } imap_cmd_out_uid_t;
+ 
+ typedef struct {
+@@ -1184,11 +1183,22 @@ parse_response_code( imap_store_t *ctx, imap_cmd_t 
*cmd, char *s )
+                */
+               for (; isspace( (uchar)*p ); p++);
+               error( "*** IMAP ALERT *** %s\n", p );
+-      } else if (cmd && !strcmp( "APPENDUID", arg )) {
++      } else if (!strcmp( "APPENDUID", arg )) {
++              // The checks ensure that:
++              // - cmd => this is the final tagged response of a command, at 
which
++              //   point cmd was already removed from ctx->in_progress, so 
param.uid
++              //   is available for reuse.
++              // - !param.uid => the command isn't actually a FETCH. This 
doesn't
++              //   really matter, as the field is safe to overwrite given the
++              //   previous condition; it just has no effect for non-APPENDs.
++              if (!cmd || cmd->param.uid) {
++                      error( "IMAP error: unexpected APPENDUID status\n" );
++                      return RESP_CANCEL;
++              }
+               if (!(arg = next_arg( &s )) ||
+                   (ctx->uidvalidity = strtoul( arg, &earg, 10 ), *earg) ||
+                   !(arg = next_arg( &s )) ||
+-                  (((imap_cmd_out_uid_t *)cmd)->out_uid = strtoul( arg, 
&earg, 10 ), *earg))
++                  (cmd->param.uid = strtoul( arg, &earg, 10 ), *earg))
+               {
+                       error( "IMAP error: malformed APPENDUID status\n" );
+                       return RESP_CANCEL;
+@@ -2957,7 +2967,6 @@ imap_store_msg( store_t *gctx, msg_data_t *data, int 
to_trash,
+       ctx->buffer_mem += data->len;
+       cmd->gen.param.data_len = data->len;
+       cmd->gen.param.data = data->data;
+-      cmd->out_uid = 0;
+ 
+       if (to_trash) {
+               cmd->gen.param.create = 1;
+@@ -2990,7 +2999,7 @@ imap_store_msg_p2( imap_store_t *ctx ATTR_UNUSED, 
imap_cmd_t *cmd, int response
+       imap_cmd_out_uid_t *cmdp = (imap_cmd_out_uid_t *)cmd;
+ 
+       transform_msg_response( &response );
+-      cmdp->callback( response, cmdp->out_uid, cmdp->callback_aux );
++      cmdp->callback( response, cmdp->gen.param.uid, cmdp->callback_aux );
+ }
+ 
+ /******************* imap_find_new_msgs *******************/
+-- 
+2.31.1.2.g8c0bdb8a70
+
diff -Nru isync-1.3.0/debian/patches/reject-funny-mailbox-names--1.3.patch 
isync-1.3.0/debian/patches/reject-funny-mailbox-names--1.3.patch
--- isync-1.3.0/debian/patches/reject-funny-mailbox-names--1.3.patch    
1970-01-01 01:00:00.000000000 +0100
+++ isync-1.3.0/debian/patches/reject-funny-mailbox-names--1.3.patch    
2021-06-09 21:21:48.000000000 +0200
@@ -0,0 +1,68 @@
+>From 45e2bdc439a01974b6b990bfb8a8968192c3b721 Mon Sep 17 00:00:00 2001
+From: Oswald Buddenhagen <[email protected]>
+Date: Sun, 14 Feb 2021 20:42:37 +0100
+Subject: [PATCH] CVE-2021-20247: reject funny mailbox names from IMAP LIST/LSUB
+
+in particular, '..' in the name could be used to escape the Path/Inbox
+of a Maildir Store, which could be exploited for stealing or deleting
+data, or staging a (mild) DoS attack.
+---
+ src/drv_imap.c | 31 ++++++++++++++++++++++++++++++-
+ 1 file changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/src/drv_imap.c b/src/drv_imap.c
+index 810479e..fbe2fed 100644
+--- a/src/drv_imap.c
++++ b/src/drv_imap.c
+@@ -1258,11 +1258,12 @@ static int
+ parse_list_rsp_p2( imap_store_t *ctx, list_t *list, char *cmd ATTR_UNUSED )
+ {
+       string_list_t *narg;
+-      char *arg;
++      char *arg, c;
+       int argl, l;
+ 
+       if (!is_atom( list )) {
+               error( "IMAP error: malformed LIST response\n" );
++        listbad:
+               free_list( list );
+               return LIST_BAD;
+       }
+@@ -1302,6 +1303,34 @@ parse_list_rsp_p2( imap_store_t *ctx, list_t *list, 
char *cmd ATTR_UNUSED )
+               warn( "IMAP warning: ignoring mailbox %s (reserved character 
'/' in name)\n", arg );
+               goto skip;
+       }
++      // Validate the normalized name. Technically speaking, we could tolerate
++      // '//' and '/./', and '/../' being forbidden is a limitation of the 
Maildir
++      // driver, but there isn't really a legitimate reason for these being 
present.
++      for (const char *p = narg->string, *sp = p;;) {
++              if (!(c = *p) || c == '/') {
++                      uint pcl = (uint)(p - sp);
++                      if (!pcl) {
++                              error( "IMAP warning: ignoring mailbox '%s' due 
to empty name component\n", narg->string );
++                              free( narg );
++                              goto skip;
++                      }
++                      if (pcl == 1 && sp[0] == '.') {
++                              error( "IMAP warning: ignoring mailbox '%s' due 
to '.' component\n", narg->string );
++                              free( narg );
++                              goto skip;
++                      }
++                      if (pcl == 2 && sp[0] == '.' && sp[1] == '.') {
++                              error( "IMAP error: LIST'd mailbox name '%s' 
contains '..' component - THIS MIGHT BE AN ATTEMPT TO HACK YOU!\n", 
narg->string );
++                              free( narg );
++                              goto listbad;
++                      }
++                      if (!c)
++                              break;
++                      sp = ++p;
++              } else {
++                      ++p;
++              }
++      }
+       narg->next = ctx->boxes;
+       ctx->boxes = narg;
+   skip:
+-- 
+2.29.2.2.g268056bf11.dirty
+
diff -Nru isync-1.3.0/debian/patches/series isync-1.3.0/debian/patches/series
--- isync-1.3.0/debian/patches/series   2018-09-02 19:31:35.000000000 +0200
+++ isync-1.3.0/debian/patches/series   2021-06-09 21:21:48.000000000 +0200
@@ -1 +1,3 @@
 01_sni.patch
+reject-funny-mailbox-names--1.3.patch
+fix-handling-of-unexpected-APPENDUID-response-code--1.3.patch
diff -Nru isync-1.3.0/debian/watch isync-1.3.0/debian/watch
--- isync-1.3.0/debian/watch    2018-09-02 19:31:35.000000000 +0200
+++ isync-1.3.0/debian/watch    2021-06-09 21:21:48.000000000 +0200
@@ -1,2 +1,2 @@
 version=3
-http://sf.net/isync/ isync-(.*)\.tar\.gz
+https://sf.net/isync/ isync-(.*)\.tar\.gz

--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 10.10

Hi,

Each of the updates referenced in these bugs was included in the 10.10
point release today.

Regards,

Adam

--- End Message ---

Reply via email to