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

enemies-of-carlotta security problem: please allow fix into etch



I've just uploaded version 1.2.4-1 of enemies-of-carlotta to unstable.
It contains a fix for CVE-2006-5875 (and only that fix), a security
problem involving badly quoted shell arguments. Please allow the new
version to enter etch as soon as possible.

I have attached the debdiff from the previous version (1.2.3-1),
currently in etch.

If there's anything I forgot to do to make this easier, please tell me.

diff -Nru /tmp/m0YNIVzyAI/enemies-of-carlotta-1.2.3/debian/changelog /tmp/WJGmpSGD2g/enemies-of-carlotta-1.2.4/debian/changelog
--- /tmp/m0YNIVzyAI/enemies-of-carlotta-1.2.3/debian/changelog	2006-12-13 15:51:48.000000000 +0200
+++ /tmp/WJGmpSGD2g/enemies-of-carlotta-1.2.4/debian/changelog	2006-12-13 15:51:48.000000000 +0200
@@ -1,3 +1,13 @@
+enemies-of-carlotta (1.2.4-1) unstable; urgency=high
+
+  * Security fix for CVE-2006-5875. There is no bug report for this, the
+    problem was reported privately to me by Antti-Juhani Kaijanaho.
+  * EoC did not correctly deal with SMTP level e-mail addresses that contain
+    shell meta characters. This has been fixed by running /usr/sbin/sendmail
+    via fork and exec, instead of os.popen.
+
+ -- Lars Wirzenius <liw@iki.fi>  Sun,  9 Dec 2006 15:49:22 +0200
+
 enemies-of-carlotta (1.2.3-1) unstable; urgency=low
 
   * New upstream version:
diff -Nru /tmp/m0YNIVzyAI/enemies-of-carlotta-1.2.3/eoc.py /tmp/WJGmpSGD2g/enemies-of-carlotta-1.2.4/eoc.py
--- /tmp/m0YNIVzyAI/enemies-of-carlotta-1.2.3/eoc.py	2006-11-10 19:34:52.000000000 +0200
+++ /tmp/WJGmpSGD2g/enemies-of-carlotta-1.2.4/eoc.py	2006-12-13 15:30:02.000000000 +0200
@@ -4,7 +4,7 @@
 address commands. See manual page for more information.
 """
 
-VERSION = "1.2.3"
+VERSION = "1.2.4"
 PLUGIN_INTERFACE_VERSION = "1"
 
 import getopt
@@ -80,6 +80,34 @@
 def md5sum_as_hex(s):
     return md5.new(s).hexdigest()
 
+
+def forkexec(argv, text):
+    """Run a command (given as argv array) and write text to its stdin"""
+    (r, w) = os.pipe()
+    pid = os.fork()
+    if pid == -1:
+        raise Exception("fork failed")
+    elif pid == 0:
+        os.dup2(r, 0)
+        os.close(r)
+        os.close(w)
+        fd = os.open("/dev/null", os.O_RDWR)
+        os.dup2(fd, 1)
+        os.dup2(fd, 2)
+        os.execvp(argv[0], argv)
+        sys.exit(1)
+    else:
+        os.close(r)
+        os.write(w, text)
+        os.close(w)
+        (pid2, exit) = os.waitpid(pid, 0)
+        if pid != pid2:
+            raise Exception("os.waitpid for %d returned for %d" % (pid, pid2))
+        if exit != 0:
+            raise Exception("subprocess failed, exit=0x%x" % exit)
+        return exit
+
+
 environ = None
 
 def set_environ(new_environ):
@@ -411,14 +439,8 @@
                     error("Error sending QMQP mail, mail probably not sent")
                     sys.exit(1)
             else:
-                recipients = string.join(recipients, " ")
-                f = os.popen("%s -oi -f '%s' %s" % 
-                                 (self.sendmail, 
-                                  envelope_sender, 
-                                  recipients),
-                             "w")
-                f.write(text)
-                status = f.close()
+                status = forkexec([self.sendmail, "-oi", "-f", 
+                                   envelope_sender] + recipients, text)
                 if status:
                     error("%s returned %s, mail sending probably failed" %
                            (self.sendmail, status))
diff -Nru /tmp/m0YNIVzyAI/enemies-of-carlotta-1.2.3/NEWS /tmp/WJGmpSGD2g/enemies-of-carlotta-1.2.4/NEWS
--- /tmp/m0YNIVzyAI/enemies-of-carlotta-1.2.3/NEWS	2006-11-10 19:34:52.000000000 +0200
+++ /tmp/WJGmpSGD2g/enemies-of-carlotta-1.2.4/NEWS	2006-12-13 15:30:02.000000000 +0200
@@ -1,5 +1,11 @@
 NEWS file for Enemies of Carlotta, a mailing list manager
 
+Significant user-visible changes from version 1.2.3 to version 1.2.4:
+
+    * A fix to CVE-2006-5875, a security problem where EoC did not quote
+      shell command line arguments properly. Thanks to Antti-Juhani
+      Kaijanaho for finding the problem.
+
 Significant user-visible changes from version 1.2.2 to version 1.2.3:
 
     * When there is a problem with MIME header encodings, don't kill EoC,

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: