emacs: quote MML tags in replies
authorAaron Ecay <aaronecay@gmail.com>
Fri, 3 Feb 2012 10:24:08 +0000 (11:24 +0100)
committerDavid Bremner <bremner@debian.org>
Fri, 3 Feb 2012 12:26:41 +0000 (08:26 -0400)
Emacs message-mode uses certain text strings to indicate how to attach
files to outgoing mail.  If these are present in the text of an email,
and a user is tricked into replying to the message, the user’s files
could be exposed.

Edited-by: Pieter Praet <pieter@praet.org>: Rebased to release branch.
NEWS
emacs/notmuch-mua.el
test/emacs

diff --git a/NEWS b/NEWS
index 3d2c2a8484fe856d60b7bcb17b5fdb5e3dcd6dc9..a089e679963d7f0d10dc1b0ed9633f1026a69e07 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,17 @@ Fix error handling in python bindings.
   exceptions to indicate the error condition. Any subsequent calls
   into libnotmuch caused segmentation faults.
 
+Quote MML tags in replies
+
+  MML tags are text codes that Emacs uses to indicate attachments
+  (among other things) in messages being composed.  The Emacs
+  interface did not quote MML tags in the quoted text of a reply.
+  User could be tricked into replying to a maliciously formatted
+  message and not editing out the MML tags from the quoted text.  This
+  could lead to files from the user's machine being attached to the
+  outgoing message.  The Emacs interface now quotes these tags in
+  reply text, so that they do not effect outgoing messages.
+
 
 Notmuch 0.11 (2012-01-13)
 =========================
index 7114e48a4b8ca94223c969cefebcb5f50fde55fa..3e93d7c8bfbf7945dcbc0fc36898a6ba2806e8b0 100644 (file)
@@ -111,7 +111,12 @@ list."
     (insert body))
   (set-buffer-modified-p nil)
 
-  (message-goto-body))
+  (message-goto-body)
+  ;; Original message may contain (malicious) MML tags.  We must
+  ;; properly quote them in the reply.  Note that using `point-max'
+  ;; instead of `mark' here is wrong.  The buffer may include user's
+  ;; signature which should not be MML-quoted.
+  (mml-quote-region (point) (point-max)))
 
 (defun notmuch-mua-forward-message ()
   (message-forward)
index db8e4ad87fbd23d37f7efb43b758ab7620d80a5b..2d066ed439d44d297eb92fc6995edb44d92a556c 100755 (executable)
@@ -274,7 +274,6 @@ EOF
 test_expect_equal_file OUTPUT EXPECTED
 
 test_begin_subtest "Quote MML tags in reply"
-test_subtest_known_broken
 message_id='test-emacs-mml-quoting@message.id'
 add_message [id]="$message_id" \
            "[subject]='$test_subtest_name'" \