mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
xdg-utils: Add a patch for CVE-2020-27748
Take a patch submitted upstream for the issue while upstream decide what to do. We don't use thunderbird integration so this isn't an issue for us. (From OE-Core rev: 5b14528e7bfe2f0a29cc2d40253e49be5202efcf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b85b7714a44caa70beb2f115483ee52745aa1b97) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
b99bc8c33f
commit
b97bbc68e0
145
meta/recipes-extended/xdg-utils/xdg-utils/CVE-2020-27748.patch
Normal file
145
meta/recipes-extended/xdg-utils/xdg-utils/CVE-2020-27748.patch
Normal file
@@ -0,0 +1,145 @@
|
||||
xdg-email does not parse mailto uris properly for thunderbird
|
||||
|
||||
When using thunderbird as mailto handler xdg-email translates mailto uris into an 'thunderbird -compose' argument. While to, cc and bcc values are properly enclosed in single quotes this is not the case for subject or body. This breaks functionality and allows to use all thunderbird -compose arguments within a mailto uri, e.g.
|
||||
|
||||
xdg-email 'mailto:test@example.com?subject=Test,attachment=~/.thunderbird/profiles.ini,message=/home/test/test.txt'
|
||||
|
||||
translates into
|
||||
|
||||
thunderbird -compose to='test@example.com,',subject=Test,attachment=~/.thunderbird/profiles.ini,message=/home/test/test.txt
|
||||
|
||||
with working attachment and message. (And, yes, ~ expands to the home directory.)
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/205]
|
||||
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
|
||||
CVE: CVE-2020-27748
|
||||
|
||||
|
||||
Index: xdg-utils-1.1.3/scripts/xdg-email.in
|
||||
===================================================================
|
||||
--- xdg-utils-1.1.3.orig/scripts/xdg-email.in
|
||||
+++ xdg-utils-1.1.3/scripts/xdg-email.in
|
||||
@@ -30,53 +30,6 @@ _USAGE
|
||||
|
||||
#@xdg-utils-common@
|
||||
|
||||
-run_thunderbird()
|
||||
-{
|
||||
- local THUNDERBIRD MAILTO NEWMAILTO TO CC BCC SUBJECT BODY
|
||||
- THUNDERBIRD="$1"
|
||||
- MAILTO=$(echo "$2" | sed 's/^mailto://')
|
||||
- echo "$MAILTO" | grep -qs "^?"
|
||||
- if [ "$?" = "0" ] ; then
|
||||
- MAILTO=$(echo "$MAILTO" | sed 's/^?//')
|
||||
- else
|
||||
- MAILTO=$(echo "$MAILTO" | sed 's/^/to=/' | sed 's/?/\&/')
|
||||
- fi
|
||||
-
|
||||
- MAILTO=$(echo "$MAILTO" | sed 's/&/\n/g')
|
||||
- TO=$(/bin/echo -e $(echo "$MAILTO" | grep '^to=' | sed 's/^to=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }'))
|
||||
- CC=$(/bin/echo -e $(echo "$MAILTO" | grep '^cc=' | sed 's/^cc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }'))
|
||||
- BCC=$(/bin/echo -e $(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }'))
|
||||
- SUBJECT=$(echo "$MAILTO" | grep '^subject=' | tail -n 1)
|
||||
- BODY=$(echo "$MAILTO" | grep '^body=' | tail -n 1)
|
||||
-
|
||||
- if [ -z "$TO" ] ; then
|
||||
- NEWMAILTO=
|
||||
- else
|
||||
- NEWMAILTO="to='$TO'"
|
||||
- fi
|
||||
- if [ -n "$CC" ] ; then
|
||||
- NEWMAILTO="${NEWMAILTO},cc='$CC'"
|
||||
- fi
|
||||
- if [ -n "$BCC" ] ; then
|
||||
- NEWMAILTO="${NEWMAILTO},bcc='$BCC'"
|
||||
- fi
|
||||
- if [ -n "$SUBJECT" ] ; then
|
||||
- NEWMAILTO="${NEWMAILTO},$SUBJECT"
|
||||
- fi
|
||||
- if [ -n "$BODY" ] ; then
|
||||
- NEWMAILTO="${NEWMAILTO},$BODY"
|
||||
- fi
|
||||
-
|
||||
- NEWMAILTO=$(echo "$NEWMAILTO" | sed 's/^,//')
|
||||
- DEBUG 1 "Running $THUNDERBIRD -compose \"$NEWMAILTO\""
|
||||
- "$THUNDERBIRD" -compose "$NEWMAILTO"
|
||||
- if [ $? -eq 0 ]; then
|
||||
- exit_success
|
||||
- else
|
||||
- exit_failure_operation_failed
|
||||
- fi
|
||||
-}
|
||||
-
|
||||
open_kde()
|
||||
{
|
||||
if [ -n "$KDE_SESSION_VERSION" ] && [ "$KDE_SESSION_VERSION" -ge 5 ]; then
|
||||
@@ -130,15 +83,6 @@ open_kde()
|
||||
|
||||
open_gnome3()
|
||||
{
|
||||
- local client
|
||||
- local desktop
|
||||
- desktop=`xdg-mime query default "x-scheme-handler/mailto"`
|
||||
- client=`desktop_file_to_binary "$desktop"`
|
||||
- echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1
|
||||
- if [ $? -eq 0 ] ; then
|
||||
- run_thunderbird "$client" "$1"
|
||||
- fi
|
||||
-
|
||||
if gio help open 2>/dev/null 1>&2; then
|
||||
DEBUG 1 "Running gio open \"$1\""
|
||||
gio open "$1"
|
||||
@@ -159,13 +103,6 @@ open_gnome3()
|
||||
|
||||
open_gnome()
|
||||
{
|
||||
- local client
|
||||
- client=`gconftool-2 --get /desktop/gnome/url-handlers/mailto/command | cut -d ' ' -f 1` || ""
|
||||
- echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1
|
||||
- if [ $? -eq 0 ] ; then
|
||||
- run_thunderbird "$client" "$1"
|
||||
- fi
|
||||
-
|
||||
if gio help open 2>/dev/null 1>&2; then
|
||||
DEBUG 1 "Running gio open \"$1\""
|
||||
gio open "$1"
|
||||
@@ -231,15 +168,6 @@ open_flatpak()
|
||||
|
||||
open_generic()
|
||||
{
|
||||
- local client
|
||||
- local desktop
|
||||
- desktop=`xdg-mime query default "x-scheme-handler/mailto"`
|
||||
- client=`desktop_file_to_binary "$desktop"`
|
||||
- echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1
|
||||
- if [ $? -eq 0 ] ; then
|
||||
- run_thunderbird "$client" "$1"
|
||||
- fi
|
||||
-
|
||||
xdg-open "$1"
|
||||
local ret=$?
|
||||
|
||||
@@ -364,21 +292,6 @@ while [ $# -gt 0 ] ; do
|
||||
shift
|
||||
;;
|
||||
|
||||
- --attach)
|
||||
- if [ -z "$1" ] ; then
|
||||
- exit_failure_syntax "file argument missing for --attach option"
|
||||
- fi
|
||||
- check_input_file "$1"
|
||||
- file=`readlink -f "$1"` # Normalize path
|
||||
- if [ -z "$file" ] || [ ! -f "$file" ] ; then
|
||||
- exit_failure_file_missing "file '$1' does not exist"
|
||||
- fi
|
||||
-
|
||||
- url_encode "$file"
|
||||
- options="${options}attach=${result}&"
|
||||
- shift
|
||||
- ;;
|
||||
-
|
||||
-*)
|
||||
exit_failure_syntax "unexpected option '$parm'"
|
||||
;;
|
||||
@@ -21,6 +21,7 @@ SRC_URI = "https://portland.freedesktop.org/download/${BPN}-${PV}.tar.gz \
|
||||
file://0001-Reinstate-xdg-terminal.patch \
|
||||
file://0001-Don-t-build-the-in-script-manual.patch \
|
||||
file://1f199813e0eb0246f63b54e9e154970e609575af.patch \
|
||||
file://CVE-2020-27748.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "902042508b626027a3709d105f0b63ff"
|
||||
|
||||
Reference in New Issue
Block a user