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

Bug#1001556: buster-pu: package mailman/1:2.1.29-1+deb10u4



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

Hi SRM,

There was another CVE fixed after the last update currently in
buster-pu for mailman which similarly we think does not warrant a DSA.
I have prepared a followup for this one as well:

https://security-tracker.debian.org/tracker/CVE-2021-44227

I'm attaching both debdiffs, once against the base version currently
in buster (1:2.1.29-1+deb10u1, note that htere was as well a DSA for
mailman, 1:2.1.29-1+deb10u2) and once only against the current version
which sits in buster-proposed-updates.

Regards,
Salvatore
diff -Nru mailman-2.1.29/debian/changelog mailman-2.1.29/debian/changelog
--- mailman-2.1.29/debian/changelog	2021-11-20 15:17:30.000000000 +0100
+++ mailman-2.1.29/debian/changelog	2021-12-12 10:42:54.000000000 +0100
@@ -1,3 +1,11 @@
+mailman (1:2.1.29-1+deb10u4) buster; urgency=medium
+
+  * Non-maintainer upload by the Security Team.
+  * Fix potential CSRF attack against a list admin from a list member or
+    moderator (CVE-2021-44227)
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Sun, 12 Dec 2021 10:42:54 +0100
+
 mailman (1:2.1.29-1+deb10u3) buster; urgency=medium
 
   * Non-maintainer upload by the Security Team.
diff -Nru mailman-2.1.29/debian/patches/CVE-2021-44227.patch mailman-2.1.29/debian/patches/CVE-2021-44227.patch
--- mailman-2.1.29/debian/patches/CVE-2021-44227.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/CVE-2021-44227.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,82 @@
+Description: Fix potential CSRF attack against a list admin from a list member or moderator
+Origin: upstream, https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/diff/1882
+Bug: https://launchpad.net/bugs/1952384
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-44227
+Forwarded: not-needed
+Last-Update: 2021-12-12
+
+=== modified file 'Mailman/CSRFcheck.py'
+--- a/Mailman/CSRFcheck.py
++++ b/Mailman/CSRFcheck.py
+@@ -55,7 +55,7 @@ def csrf_token(mlist, contexts, user=Non
+     token = binascii.hexlify(marshal.dumps((issued, keymac)))
+     return token
+ 
+-def csrf_check(mlist, token, options_user=None):
++def csrf_check(mlist, token, cgi_user=None):
+     """ check token by mailman cookie validation algorithm """
+     try:
+         issued, keymac = marshal.loads(binascii.unhexlify(token))
+@@ -67,12 +67,25 @@ def csrf_check(mlist, token, options_use
+             key, user = key.split('+', 1)
+         else:
+             user = None
++        # Don't allow unprivileged tokens for admin or admindb.
++        if cgi_user == 'admin':
++            if key not in ('admin', 'site'):
++                syslog('mischief',
++                       'admin form submitted with CSRF token issued for %s.',
++                       key + '+' + user if user else key)
++                return False
++        elif cgi_user == 'admindb':
++            if key not in ('moderator', 'admin', 'site'):
++                syslog('mischief',
++                       'admindb form submitted with CSRF token issued for %s.',
++                       key + '+' + user if user else key)
++                return False
+         if user:
+             # This is for CVE-2021-42097.  The token is a user token because
+             # of the fix for CVE-2021-42096 but it must match the user for
+             # whom the options page is requested.
+             raw_user = UnobscureEmail(urllib.unquote(user))
+-            if options_user and options_user != raw_user:
++            if cgi_user and cgi_user != raw_user:
+                 syslog('mischief',
+                        'Form for user %s submitted with CSRF token '
+                        'issued for %s.',
+--- a/Mailman/Cgi/admin.py
++++ b/Mailman/Cgi/admin.py
+@@ -107,7 +107,8 @@ def main():
+                    'legend']
+     params = cgidata.keys()
+     if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  'admin')
+     else:
+         csrf_checked = True
+     # if password is present, void cookie to force password authentication.
+--- a/Mailman/Cgi/admindb.py
++++ b/Mailman/Cgi/admindb.py
+@@ -144,7 +144,8 @@ def main():
+     safe_params = ['adminpw', 'admlogin', 'msgid', 'sender', 'details']
+     params = cgidata.keys()
+     if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  'admindb')
+     else:
+         csrf_checked = True
+     # if password is present, void cookie to force password authentication.
+--- a/Mailman/Cgi/edithtml.py
++++ b/Mailman/Cgi/edithtml.py
+@@ -111,7 +111,8 @@ def main():
+     safe_params = ['VARHELP', 'adminpw', 'admlogin']
+     params = cgidata.keys()
+     if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  'admin')
+     else:
+         csrf_checked = True
+     # if password is present, void cookie to force password authentication.
diff -Nru mailman-2.1.29/debian/patches/series mailman-2.1.29/debian/patches/series
--- mailman-2.1.29/debian/patches/series	2021-11-20 15:17:30.000000000 +0100
+++ mailman-2.1.29/debian/patches/series	2021-12-12 10:42:54.000000000 +0100
@@ -15,3 +15,4 @@
 1873-CVE-2021-42096_CVE-2021-42097.patch
 CVE-2021-43331.patch
 CVE-2021-43332.patch
+CVE-2021-44227.patch
diff -Nru mailman-2.1.29/debian/changelog mailman-2.1.29/debian/changelog
--- mailman-2.1.29/debian/changelog	2020-04-24 16:27:05.000000000 +0200
+++ mailman-2.1.29/debian/changelog	2021-12-12 10:42:54.000000000 +0100
@@ -1,3 +1,31 @@
+mailman (1:2.1.29-1+deb10u4) buster; urgency=medium
+
+  * Non-maintainer upload by the Security Team.
+  * Fix potential CSRF attack against a list admin from a list member or
+    moderator (CVE-2021-44227)
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Sun, 12 Dec 2021 10:42:54 +0100
+
+mailman (1:2.1.29-1+deb10u3) buster; urgency=medium
+
+  * Non-maintainer upload by the Security Team.
+  * Potential XSS attack via the user options page (CVE-2021-43331)
+    (Closes: #1000367)
+  * A list moderator can crack the list admin password encrypted in a CSRF
+    token (CVE-2021-43332) (Closes: #1000367)
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Sat, 20 Nov 2021 15:17:30 +0100
+
+mailman (1:2.1.29-1+deb10u2) buster-security; urgency=high
+
+  * Non-maintainer upload by the Security Team.
+  * Fixed options login content injection vulnerability (CVE-2020-12108)
+  * Fixed content injection vulnerability via the private login page
+    (CVE-2020-15011)
+  * Fix remote privilege escalation (CVE-2021-42096, CVE-2021-42097)
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Fri, 22 Oct 2021 14:32:39 +0200
+
 mailman (1:2.1.29-1+deb10u1) buster-security; urgency=high
 
   * Upload to buster for security issue.
diff -Nru mailman-2.1.29/debian/patches/1844-CVE-2020-12108.patch mailman-2.1.29/debian/patches/1844-CVE-2020-12108.patch
--- mailman-2.1.29/debian/patches/1844-CVE-2020-12108.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/1844-CVE-2020-12108.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,17 @@
+Description: Fixed options login content injection vulnerability
+Origin: upstream, https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1844
+Bug: https://bugs.launchpad.net/mailman/+bug/1873722
+Bug-Debian-security: https://security-tracker.debian.org/tracker/CVE-2020-12108
+Last-Update: 2021-10-22
+
+--- a/Mailman/Cgi/options.py
++++ b/Mailman/Cgi/options.py
+@@ -172,7 +172,7 @@ def main():
+     try:
+         Utils.ValidateEmail(user)
+     except Errors.EmailAddressError:
+-        doc.addError(_('Illegal Email Address: %(safeuser)s'))
++        doc.addError(_('Illegal Email Address'))
+         loginpage(mlist, doc, None, language)
+         print doc.Format()
+         return
diff -Nru mailman-2.1.29/debian/patches/1848-CVE-2020-15011.patch mailman-2.1.29/debian/patches/1848-CVE-2020-15011.patch
--- mailman-2.1.29/debian/patches/1848-CVE-2020-15011.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/1848-CVE-2020-15011.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,26 @@
+Description: Fixed content injection vulnerability via the private login page
+Origin: upstream, https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1848
+Bug: https://launchpad.net/bugs/1877379
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2020-15011
+Last-Update: 2021-10-22
+
+--- a/Mailman/Cgi/private.py	2019-03-06 17:48:32 +0000
++++ b/Mailman/Cgi/private.py	2020-05-07 13:53:40 +0000
+@@ -162,13 +162,9 @@
+             if mlist.isMember(username):
+                 mlist.MailUserPassword(username)
+             elif username:
+-                # Not a member
+-                if mlist.private_roster == 0:
+-                    # Public rosters
+-                    safeuser = Utils.websafe(username)
+-                    message = Bold(FontSize('+1',
+-                                  _('No such member: %(safeuser)s.'))).Format()
+-                else:
++                # Not a member. Don't report address in any case. It leads to
++                # Content injection. Just log if roster is not public.
++                if mlist.private_roster != 0:
+                     syslog('mischief',
+                        'Reminder attempt of non-member w/ private rosters: %s',
+                        username)
+
diff -Nru mailman-2.1.29/debian/patches/1873-CVE-2021-42096_CVE-2021-42097.patch mailman-2.1.29/debian/patches/1873-CVE-2021-42096_CVE-2021-42097.patch
--- mailman-2.1.29/debian/patches/1873-CVE-2021-42096_CVE-2021-42097.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/1873-CVE-2021-42096_CVE-2021-42097.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,131 @@
+Description: Fix remote Privilege Escalation
+Origin: upstream, https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1873
+Bug: https://bugs.launchpad.net/mailman/+bug/1947639
+Bug: https://bugs.launchpad.net/mailman/+bug/1947640
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-42096
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-42097
+Last-Update: 2021-10-22
+
+--- a/Mailman/CSRFcheck.py
++++ b/Mailman/CSRFcheck.py
+@@ -18,11 +18,13 @@
+ """ Cross-Site Request Forgery checker """
+ 
+ import time
++import urllib
+ import marshal
+ import binascii
+ 
+ from Mailman import mm_cfg
+-from Mailman.Utils import sha_new
++from Mailman.Logging.Syslog import syslog
++from Mailman.Utils import UnobscureEmail, sha_new
+ 
+ keydict = {
+     'user':      mm_cfg.AuthUser,
+@@ -37,6 +39,10 @@ keydict = {
+ def csrf_token(mlist, contexts, user=None):
+     """ create token by mailman cookie generation algorithm """
+ 
++    if user:
++        # Unmunge a munged email address.
++        user = UnobscureEmail(urllib.unquote(user))
++        
+     for context in contexts:
+         key, secret = mlist.AuthContextInfo(context, user)
+         if key:
+@@ -49,9 +55,8 @@ def csrf_token(mlist, contexts, user=Non
+     token = binascii.hexlify(marshal.dumps((issued, keymac)))
+     return token
+ 
+-def csrf_check(mlist, token):
++def csrf_check(mlist, token, options_user=None):
+     """ check token by mailman cookie validation algorithm """
+-
+     try:
+         issued, keymac = marshal.loads(binascii.unhexlify(token))
+         key, received_mac = keymac.split(':', 1)
+@@ -62,6 +67,17 @@ def csrf_check(mlist, token):
+             key, user = key.split('+', 1)
+         else:
+             user = None
++        if user:
++            # This is for CVE-2021-42097.  The token is a user token because
++            # of the fix for CVE-2021-42096 but it must match the user for
++            # whom the options page is requested.
++            raw_user = UnobscureEmail(urllib.unquote(user))
++            if options_user and options_user != raw_user:
++                syslog('mischief',
++                       'Form for user %s submitted with CSRF token '
++                       'issued for %s.',
++                       options_user, raw_user)
++                return False
+         context = keydict.get(key)
+         key, secret = mlist.AuthContextInfo(context, user)
+         assert key
+--- a/Mailman/Cgi/options.py
++++ b/Mailman/Cgi/options.py
+@@ -54,9 +54,6 @@ except NameError:
+     True = 1
+     False = 0
+ 
+-AUTH_CONTEXTS = (mm_cfg.AuthListAdmin, mm_cfg.AuthSiteAdmin,
+-                 mm_cfg.AuthListModerator, mm_cfg.AuthUser)
+-
+ 
+ def main():
+     global _
+@@ -124,15 +121,6 @@ def main():
+         print doc.Format()
+         return
+ 
+-    if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
+-    else:
+-        csrf_checked = True
+-    # if password is present, void cookie to force password authentication.
+-    if cgidata.getfirst('password'):
+-        os.environ['HTTP_COOKIE'] = ''
+-        csrf_checked = True
+-
+     # Set the language for the page.  If we're coming from the listinfo cgi,
+     # we might have a 'language' key in the cgi data.  That was an explicit
+     # preference to view the page in, so we should honor that here.  If that's
+@@ -168,6 +156,16 @@ def main():
+             user = user[-1]
+ 
+     # Avoid cross-site scripting attacks
++    if set(params) - set(safe_params):
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  Utils.UnobscureEmail(urllib.unquote(user)))
++    else:
++        csrf_checked = True
++    # if password is present, void cookie to force password authentication.
++    if cgidata.getfirst('password'):
++        os.environ['HTTP_COOKIE'] = ''
++        csrf_checked = True
++
+     safeuser = Utils.websafe(user)
+     try:
+         Utils.ValidateEmail(user)
+@@ -867,8 +865,9 @@ def options_page(mlist, doc, user, cpuse
+         mlist.FormatButton('othersubs',
+                            _('List my other subscriptions')))
+     replacements['<mm-form-start>'] = (
++        # Always make the CSRF token for the user. CVE-2021-42096
+         mlist.FormatFormStart('options', user, mlist=mlist, 
+-            contexts=AUTH_CONTEXTS, user=user))
++            contexts=[mm_cfg.AuthUser], user=user))
+     replacements['<mm-user>'] = user
+     replacements['<mm-presentable-user>'] = presentable_user
+     replacements['<mm-email-my-pw>'] = mlist.FormatButton(
+--- a/Mailman/SecurityManager.py
++++ b/Mailman/SecurityManager.py
+@@ -104,6 +104,7 @@ class SecurityManager:
+             if user is None:
+                 # A bad system error
+                 raise TypeError, 'No user supplied for AuthUser context'
++            user = Utils.UnobscureEmail(urllib.unquote(user))
+             secret = self.getMemberPassword(user)
+             userdata = urllib.quote(Utils.ObscureEmail(user), safe='')
+             key += 'user+%s' % userdata
diff -Nru mailman-2.1.29/debian/patches/CVE-2021-43331.patch mailman-2.1.29/debian/patches/CVE-2021-43331.patch
--- mailman-2.1.29/debian/patches/CVE-2021-43331.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/CVE-2021-43331.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,19 @@
+Description: Potential XSS attack via the user options page
+Origin: upstream, https://bugs.launchpad.net/mailman/+bug/1949401/+attachment/5540165/+files/patch_to_fix_1949401
+Bug: https://bugs.launchpad.net/mailman/+bug/1949401
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-43331
+Forwarded: not-needed
+Last-Update: 2021-11-20
+
+=== modified file 'Mailman/Cgi/options.py'
+--- a/Mailman/Cgi/options.py
++++ b/Mailman/Cgi/options.py
+@@ -342,6 +342,8 @@ def main():
+             varhelp = qs[0]
+     if varhelp:
+         # Sanitize the topic name.
++        while '%' in varhelp:
++            varhelp = urllib.unquote_plus(varhelp)
+         varhelp = re.sub('<.*', '', varhelp)
+         topic_details(mlist, doc, user, cpuser, userlang, varhelp)
+         return
diff -Nru mailman-2.1.29/debian/patches/CVE-2021-43332.patch mailman-2.1.29/debian/patches/CVE-2021-43332.patch
--- mailman-2.1.29/debian/patches/CVE-2021-43332.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/CVE-2021-43332.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,32 @@
+Description: A list moderator can crack the list admin password encrypted in a CSRF token
+Origin: upstream, https://bugs.launchpad.net/mailman/+bug/1949403/+attachment/5540558/+files/patch_to_fix_1949403
+Bug: https://bugs.launchpad.net/mailman/+bug/1949403
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-43332
+Forwarded: not-needed
+Last-Update: 2021-11-20
+
+=== modified file 'Mailman/CSRFcheck.py'
+--- a/Mailman/CSRFcheck.py
++++ b/Mailman/CSRFcheck.py
+@@ -45,7 +45,7 @@ def csrf_token(mlist, contexts, user=Non
+         
+     for context in contexts:
+         key, secret = mlist.AuthContextInfo(context, user)
+-        if key:
++        if key and secret:
+             break
+     else:
+         return None     # not authenticated
+--- a/Mailman/Cgi/admindb.py
++++ b/Mailman/Cgi/admindb.py
+@@ -59,8 +59,8 @@ if mm_cfg.DISPLAY_HELD_SUMMARY_SORT_BUTT
+ else:
+     ssort = SSENDER
+ 
+-AUTH_CONTEXTS = (mm_cfg.AuthListAdmin, mm_cfg.AuthSiteAdmin,
+-                 mm_cfg.AuthListModerator)
++AUTH_CONTEXTS = (mm_cfg.AuthListModerator, mm_cfg.AuthListAdmin,
++                 mm_cfg.AuthSiteAdmin)
+ 
+ 
+ 
diff -Nru mailman-2.1.29/debian/patches/CVE-2021-44227.patch mailman-2.1.29/debian/patches/CVE-2021-44227.patch
--- mailman-2.1.29/debian/patches/CVE-2021-44227.patch	1970-01-01 01:00:00.000000000 +0100
+++ mailman-2.1.29/debian/patches/CVE-2021-44227.patch	2021-12-12 10:42:54.000000000 +0100
@@ -0,0 +1,82 @@
+Description: Fix potential CSRF attack against a list admin from a list member or moderator
+Origin: upstream, https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/diff/1882
+Bug: https://launchpad.net/bugs/1952384
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-44227
+Forwarded: not-needed
+Last-Update: 2021-12-12
+
+=== modified file 'Mailman/CSRFcheck.py'
+--- a/Mailman/CSRFcheck.py
++++ b/Mailman/CSRFcheck.py
+@@ -55,7 +55,7 @@ def csrf_token(mlist, contexts, user=Non
+     token = binascii.hexlify(marshal.dumps((issued, keymac)))
+     return token
+ 
+-def csrf_check(mlist, token, options_user=None):
++def csrf_check(mlist, token, cgi_user=None):
+     """ check token by mailman cookie validation algorithm """
+     try:
+         issued, keymac = marshal.loads(binascii.unhexlify(token))
+@@ -67,12 +67,25 @@ def csrf_check(mlist, token, options_use
+             key, user = key.split('+', 1)
+         else:
+             user = None
++        # Don't allow unprivileged tokens for admin or admindb.
++        if cgi_user == 'admin':
++            if key not in ('admin', 'site'):
++                syslog('mischief',
++                       'admin form submitted with CSRF token issued for %s.',
++                       key + '+' + user if user else key)
++                return False
++        elif cgi_user == 'admindb':
++            if key not in ('moderator', 'admin', 'site'):
++                syslog('mischief',
++                       'admindb form submitted with CSRF token issued for %s.',
++                       key + '+' + user if user else key)
++                return False
+         if user:
+             # This is for CVE-2021-42097.  The token is a user token because
+             # of the fix for CVE-2021-42096 but it must match the user for
+             # whom the options page is requested.
+             raw_user = UnobscureEmail(urllib.unquote(user))
+-            if options_user and options_user != raw_user:
++            if cgi_user and cgi_user != raw_user:
+                 syslog('mischief',
+                        'Form for user %s submitted with CSRF token '
+                        'issued for %s.',
+--- a/Mailman/Cgi/admin.py
++++ b/Mailman/Cgi/admin.py
+@@ -107,7 +107,8 @@ def main():
+                    'legend']
+     params = cgidata.keys()
+     if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  'admin')
+     else:
+         csrf_checked = True
+     # if password is present, void cookie to force password authentication.
+--- a/Mailman/Cgi/admindb.py
++++ b/Mailman/Cgi/admindb.py
+@@ -144,7 +144,8 @@ def main():
+     safe_params = ['adminpw', 'admlogin', 'msgid', 'sender', 'details']
+     params = cgidata.keys()
+     if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  'admindb')
+     else:
+         csrf_checked = True
+     # if password is present, void cookie to force password authentication.
+--- a/Mailman/Cgi/edithtml.py
++++ b/Mailman/Cgi/edithtml.py
+@@ -111,7 +111,8 @@ def main():
+     safe_params = ['VARHELP', 'adminpw', 'admlogin']
+     params = cgidata.keys()
+     if set(params) - set(safe_params):
+-        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'))
++        csrf_checked = csrf_check(mlist, cgidata.getfirst('csrf_token'),
++                                  'admin')
+     else:
+         csrf_checked = True
+     # if password is present, void cookie to force password authentication.
diff -Nru mailman-2.1.29/debian/patches/series mailman-2.1.29/debian/patches/series
--- mailman-2.1.29/debian/patches/series	2020-04-24 16:27:02.000000000 +0200
+++ mailman-2.1.29/debian/patches/series	2021-12-12 10:42:54.000000000 +0100
@@ -10,3 +10,9 @@
 79_archiver_slash.patch
 92_reproducible_build.patch
 scrubber-obj2bin.patch
+1844-CVE-2020-12108.patch
+1848-CVE-2020-15011.patch
+1873-CVE-2021-42096_CVE-2021-42097.patch
+CVE-2021-43331.patch
+CVE-2021-43332.patch
+CVE-2021-44227.patch

Reply to: