Rex Dieter 76fc848
From 11a4bd44692f74a8b8b4615e44dc897c929ef1e5 Mon Sep 17 00:00:00 2001
Rex Dieter 76fc848
From: Rex Dieter <rdieter@math.unl.edu>
Rex Dieter 76fc848
Date: Mon, 5 Jan 2015 13:09:05 -0600
Rex Dieter 76fc848
Subject: [PATCH 2/5] xdg-open: command injection vulnerability (BR66670)
Rex Dieter 76fc848
Rex Dieter 76fc848
---
Rex Dieter 76fc848
 ChangeLog           | 3 +++
Rex Dieter 76fc848
 scripts/xdg-open.in | 6 +++---
Rex Dieter 76fc848
 2 files changed, 6 insertions(+), 3 deletions(-)
Rex Dieter 76fc848
Rex Dieter 76fc848
diff --git a/ChangeLog b/ChangeLog
Rex Dieter 76fc848
index 735fee7..e309517 100644
Rex Dieter 76fc848
--- a/ChangeLog
Rex Dieter 76fc848
+++ b/ChangeLog
Rex Dieter 76fc848
@@ -1,5 +1,8 @@
Rex Dieter 76fc848
 === xdg-utils 1.1.x ===
Rex Dieter 76fc848
 
Rex Dieter 76fc848
+2015-01-05 Rex Dieter <rdieter@fedoraproject.org>
Rex Dieter 76fc848
+   * xdg-open: command injection vulnerability (BR66670)
Rex Dieter 76fc848
+
Rex Dieter 76fc848
 2015-01-04 Rex Dieter <rdieter@fedoraproject.org>
Rex Dieter 76fc848
    * xdg-screensaver should control X11's screensaver in xfce as fallback (BR80089)
Rex Dieter 76fc848
 
Rex Dieter 76fc848
diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in
Rex Dieter 76fc848
index 0145be3..9f01747 100644
Rex Dieter 76fc848
--- a/scripts/xdg-open.in
Rex Dieter 76fc848
+++ b/scripts/xdg-open.in
Rex Dieter 76fc848
@@ -186,17 +186,17 @@ search_desktop_file()
Rex Dieter 76fc848
         # FIXME: Actually LC_MESSAGES should be used as described in
Rex Dieter 76fc848
         # http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.html
Rex Dieter 76fc848
         localised_name="'$(get_key "${file}" "Name")'"
Rex Dieter 76fc848
-        arguments_exec="$(echo "$arguments" | sed -e 's*%[fFuU]*"'"$arg_one"'"*g' \
Rex Dieter 76fc848
+        arguments_exec="$(echo "$arguments" | sed -e 's*%[fFuU]*'"$arg_one"'*g' \
Rex Dieter 76fc848
                                                   -e 's*%i*'"$icon"'*g' \
Rex Dieter 76fc848
                                                   -e 's*%c*'"$localised_name"'*g')"
Rex Dieter 76fc848
 
Rex Dieter 76fc848
         if [ -x "$command_exec" ] ; then
Rex Dieter 76fc848
             if echo "$arguments" | grep -iq '%[fFuU]' ; then
Rex Dieter 76fc848
                 echo START "$command_exec" "$arguments_exec"
Rex Dieter 76fc848
-                eval "$command_exec" "$arguments_exec"
Rex Dieter 76fc848
+                eval "$command_exec" '$arguments_exec'
Rex Dieter 76fc848
             else
Rex Dieter 76fc848
                 echo START "$command_exec" "$arguments_exec" "$arg"
Rex Dieter 76fc848
-                eval "$command_exec" "$arguments_exec" "$arg"
Rex Dieter 76fc848
+                eval "$command_exec" '$arguments_exec' '$arg'
Rex Dieter 76fc848
             fi
Rex Dieter 76fc848
 
Rex Dieter 76fc848
             if [ $? -eq 0 ]; then
Rex Dieter 76fc848
-- 
Rex Dieter 76fc848
2.1.0
Rex Dieter 76fc848