]> git.eshelyaron.com Git - emacs.git/commit
Fix Elisp code injection vulnerability in emacsclient-mail.desktop
authorUlrich Müller <ulm@gentoo.org>
Tue, 7 Mar 2023 17:25:37 +0000 (18:25 +0100)
committerUlrich Müller <ulm@gentoo.org>
Tue, 7 Mar 2023 17:25:37 +0000 (18:25 +0100)
commit3c1693d08b0a71d40a77e7b40c0ebc42dca2d2cc
treef4d2798e2e502999a8c06062bdda0f8498fa6afa
parentab417c8a6eeb7df7ccce3e5f8416f48544a5174e
Fix Elisp code injection vulnerability in emacsclient-mail.desktop

A crafted mailto URI could contain unescaped double-quote
characters, allowing injection of Elisp code.  Therefore, any
'\' and '"' characters are replaced by '\\' and '\"', using Bash
pattern substitution (which is not available in the POSIX shell).

We want to pass literal 'u=${1//\\/\\\\}; u=${u//\"/\\\"};' in the
bash -c command, but in the desktop entry '"', '$', and '\' must
be escaped as '\\"', '\\$', and '\\\\', respectively (backslashes
are expanded twice, see the Desktop Entry Specification).

Reported by Gabriel Corona <gabriel.corona@free.fr>.

* etc/emacsclient-mail.desktop (Exec): Escape backslash and
double-quote characters.
etc/emacsclient-mail.desktop