Miroslav Lichvar discovered that xdg-open allows for arbitrary command execution in case the URL can not be handled by KDE, GNOME, XFCE or mimeopen. The vulnerable line: browser_with_arg=`echo "$browser" | sed s#%s#"$1"#` should be rewritten as: browser_with_arg=${browser//'%s'/"$1"} according to upstream. This issue is under embargo until Monday, Jan 28. Drac and pva, please create an updated ebuild and attach it to this bug if you want pre-stable testing to commit straight to stable on the date of the disclosure. Do not commit anything to CVS yet. If you want someone else to take care of this issue, please cc him/her on this bug.
This affects xdg-email, too.
That ${} is bash only, in case that is relevant (might need editing the #!)
Patches are upstream, so this is semi-public. Please commit patches in the tree. http://webcvs.freedesktop.org/portland/portland/xdg-utils/scripts/xdg-open.in?r1=1.17&r2=1.18&view=patch http://webcvs.freedesktop.org/portland/portland/xdg-utils/scripts/xdg-open?r1=1.32&r2=1.33&view=patch http://webcvs.freedesktop.org/portland/portland/xdg-utils/scripts/xdg-email.in?r1=1.24&r2=1.25&view=patch http://webcvs.freedesktop.org/portland/portland/xdg-utils/scripts/xdg-email?r1=1.36&r2=1.37&view=patch
xdg-utils-1.0.2-r1.ebuild with fix applied commited.
The "commit straight to stable" part in my original message was meant as in "if you attach the ebuild here, Arch Liaisons can test it and we can commit to stable afterwards". Moving to [glsa] then.
public via $url
GLSA 200801-21