diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-04-04 13:58:22 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-04-04 21:55:21 +0100 |
commit | c097180d439f6514a3225d736e18ee14c759f0a1 (patch) | |
tree | dada814fade8107d3e5e317d30b1633fdc09e628 /meta/recipes-extended/xdg-utils | |
parent | bcf8ac1ff5fcca0bd19c22dcf922052259265f25 (diff) | |
download | poky-c097180d439f6514a3225d736e18ee14c759f0a1.tar.gz |
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: b85b7714a44caa70beb2f115483ee52745aa1b97)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-extended/xdg-utils')
-rw-r--r-- | meta/recipes-extended/xdg-utils/xdg-utils/CVE-2020-27748.patch | 145 | ||||
-rw-r--r-- | meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb | 1 |
2 files changed, 146 insertions, 0 deletions
diff --git a/meta/recipes-extended/xdg-utils/xdg-utils/CVE-2020-27748.patch b/meta/recipes-extended/xdg-utils/xdg-utils/CVE-2020-27748.patch new file mode 100644 index 0000000000..ec3605e158 --- /dev/null +++ b/meta/recipes-extended/xdg-utils/xdg-utils/CVE-2020-27748.patch | |||
@@ -0,0 +1,145 @@ | |||
1 | xdg-email does not parse mailto uris properly for thunderbird | ||
2 | |||
3 | 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. | ||
4 | |||
5 | xdg-email 'mailto:test@example.com?subject=Test,attachment=~/.thunderbird/profiles.ini,message=/home/test/test.txt' | ||
6 | |||
7 | translates into | ||
8 | |||
9 | thunderbird -compose to='test@example.com,',subject=Test,attachment=~/.thunderbird/profiles.ini,message=/home/test/test.txt | ||
10 | |||
11 | with working attachment and message. (And, yes, ~ expands to the home directory.) | ||
12 | |||
13 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/205] | ||
14 | |||
15 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
16 | |||
17 | CVE: CVE-2020-27748 | ||
18 | |||
19 | |||
20 | Index: xdg-utils-1.1.3/scripts/xdg-email.in | ||
21 | =================================================================== | ||
22 | --- xdg-utils-1.1.3.orig/scripts/xdg-email.in | ||
23 | +++ xdg-utils-1.1.3/scripts/xdg-email.in | ||
24 | @@ -30,53 +30,6 @@ _USAGE | ||
25 | |||
26 | #@xdg-utils-common@ | ||
27 | |||
28 | -run_thunderbird() | ||
29 | -{ | ||
30 | - local THUNDERBIRD MAILTO NEWMAILTO TO CC BCC SUBJECT BODY | ||
31 | - THUNDERBIRD="$1" | ||
32 | - MAILTO=$(echo "$2" | sed 's/^mailto://') | ||
33 | - echo "$MAILTO" | grep -qs "^?" | ||
34 | - if [ "$?" = "0" ] ; then | ||
35 | - MAILTO=$(echo "$MAILTO" | sed 's/^?//') | ||
36 | - else | ||
37 | - MAILTO=$(echo "$MAILTO" | sed 's/^/to=/' | sed 's/?/\&/') | ||
38 | - fi | ||
39 | - | ||
40 | - MAILTO=$(echo "$MAILTO" | sed 's/&/\n/g') | ||
41 | - TO=$(/bin/echo -e $(echo "$MAILTO" | grep '^to=' | sed 's/^to=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }')) | ||
42 | - CC=$(/bin/echo -e $(echo "$MAILTO" | grep '^cc=' | sed 's/^cc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }')) | ||
43 | - BCC=$(/bin/echo -e $(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }')) | ||
44 | - SUBJECT=$(echo "$MAILTO" | grep '^subject=' | tail -n 1) | ||
45 | - BODY=$(echo "$MAILTO" | grep '^body=' | tail -n 1) | ||
46 | - | ||
47 | - if [ -z "$TO" ] ; then | ||
48 | - NEWMAILTO= | ||
49 | - else | ||
50 | - NEWMAILTO="to='$TO'" | ||
51 | - fi | ||
52 | - if [ -n "$CC" ] ; then | ||
53 | - NEWMAILTO="${NEWMAILTO},cc='$CC'" | ||
54 | - fi | ||
55 | - if [ -n "$BCC" ] ; then | ||
56 | - NEWMAILTO="${NEWMAILTO},bcc='$BCC'" | ||
57 | - fi | ||
58 | - if [ -n "$SUBJECT" ] ; then | ||
59 | - NEWMAILTO="${NEWMAILTO},$SUBJECT" | ||
60 | - fi | ||
61 | - if [ -n "$BODY" ] ; then | ||
62 | - NEWMAILTO="${NEWMAILTO},$BODY" | ||
63 | - fi | ||
64 | - | ||
65 | - NEWMAILTO=$(echo "$NEWMAILTO" | sed 's/^,//') | ||
66 | - DEBUG 1 "Running $THUNDERBIRD -compose \"$NEWMAILTO\"" | ||
67 | - "$THUNDERBIRD" -compose "$NEWMAILTO" | ||
68 | - if [ $? -eq 0 ]; then | ||
69 | - exit_success | ||
70 | - else | ||
71 | - exit_failure_operation_failed | ||
72 | - fi | ||
73 | -} | ||
74 | - | ||
75 | open_kde() | ||
76 | { | ||
77 | if [ -n "$KDE_SESSION_VERSION" ] && [ "$KDE_SESSION_VERSION" -ge 5 ]; then | ||
78 | @@ -130,15 +83,6 @@ open_kde() | ||
79 | |||
80 | open_gnome3() | ||
81 | { | ||
82 | - local client | ||
83 | - local desktop | ||
84 | - desktop=`xdg-mime query default "x-scheme-handler/mailto"` | ||
85 | - client=`desktop_file_to_binary "$desktop"` | ||
86 | - echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1 | ||
87 | - if [ $? -eq 0 ] ; then | ||
88 | - run_thunderbird "$client" "$1" | ||
89 | - fi | ||
90 | - | ||
91 | if gio help open 2>/dev/null 1>&2; then | ||
92 | DEBUG 1 "Running gio open \"$1\"" | ||
93 | gio open "$1" | ||
94 | @@ -159,13 +103,6 @@ open_gnome3() | ||
95 | |||
96 | open_gnome() | ||
97 | { | ||
98 | - local client | ||
99 | - client=`gconftool-2 --get /desktop/gnome/url-handlers/mailto/command | cut -d ' ' -f 1` || "" | ||
100 | - echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1 | ||
101 | - if [ $? -eq 0 ] ; then | ||
102 | - run_thunderbird "$client" "$1" | ||
103 | - fi | ||
104 | - | ||
105 | if gio help open 2>/dev/null 1>&2; then | ||
106 | DEBUG 1 "Running gio open \"$1\"" | ||
107 | gio open "$1" | ||
108 | @@ -231,15 +168,6 @@ open_flatpak() | ||
109 | |||
110 | open_generic() | ||
111 | { | ||
112 | - local client | ||
113 | - local desktop | ||
114 | - desktop=`xdg-mime query default "x-scheme-handler/mailto"` | ||
115 | - client=`desktop_file_to_binary "$desktop"` | ||
116 | - echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1 | ||
117 | - if [ $? -eq 0 ] ; then | ||
118 | - run_thunderbird "$client" "$1" | ||
119 | - fi | ||
120 | - | ||
121 | xdg-open "$1" | ||
122 | local ret=$? | ||
123 | |||
124 | @@ -364,21 +292,6 @@ while [ $# -gt 0 ] ; do | ||
125 | shift | ||
126 | ;; | ||
127 | |||
128 | - --attach) | ||
129 | - if [ -z "$1" ] ; then | ||
130 | - exit_failure_syntax "file argument missing for --attach option" | ||
131 | - fi | ||
132 | - check_input_file "$1" | ||
133 | - file=`readlink -f "$1"` # Normalize path | ||
134 | - if [ -z "$file" ] || [ ! -f "$file" ] ; then | ||
135 | - exit_failure_file_missing "file '$1' does not exist" | ||
136 | - fi | ||
137 | - | ||
138 | - url_encode "$file" | ||
139 | - options="${options}attach=${result}&" | ||
140 | - shift | ||
141 | - ;; | ||
142 | - | ||
143 | -*) | ||
144 | exit_failure_syntax "unexpected option '$parm'" | ||
145 | ;; | ||
diff --git a/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb b/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb index 73acf6b744..d95bcccd2a 100644 --- a/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb +++ b/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb | |||
@@ -21,6 +21,7 @@ SRC_URI = "https://portland.freedesktop.org/download/${BPN}-${PV}.tar.gz \ | |||
21 | file://0001-Reinstate-xdg-terminal.patch \ | 21 | file://0001-Reinstate-xdg-terminal.patch \ |
22 | file://0001-Don-t-build-the-in-script-manual.patch \ | 22 | file://0001-Don-t-build-the-in-script-manual.patch \ |
23 | file://1f199813e0eb0246f63b54e9e154970e609575af.patch \ | 23 | file://1f199813e0eb0246f63b54e9e154970e609575af.patch \ |
24 | file://CVE-2020-27748.patch \ | ||
24 | " | 25 | " |
25 | 26 | ||
26 | SRC_URI[md5sum] = "902042508b626027a3709d105f0b63ff" | 27 | SRC_URI[md5sum] = "902042508b626027a3709d105f0b63ff" |