← Advisories

ReQuest Serious Play Media Player 3.0 Directory Traversal File Disclosure Vulnerability

High
Advisory ID
ZSL-2020-5599
Release Date
18 October 2020
Vendor
ReQuest Serious Play LLC - http://www.request.com
Affected Version
3.0.0, 2.1.0.831, 1.5.2.822, 1.5.2.821, 1.5.1.820
Tested On
ReQuestHTTP/0.1 httpserver/0.1
Summary

With the MediaPlayer, ReQuest delivers video content and award-winning distributed music capabilities. Up to 4 MediaPlayers (15 when coupled with an approved NAS) can be connected through your home network to your ReQuest system, delivering HD video to your television in 1080p via HDMI outputs.

Description

The device suffers from an unauthenticated file disclosure vulnerability when input passed through the 'file' parameter in tail.html and file.html script is not properly verified before being used to read web log files. This can be exploited to disclose contents of files from local resources.

/tail.html: ----------- function load_data() { var elem = $("#data"); $.ajax({url:"tail.html", data:{ file:elem.attr("file"), start:elem.attr("nextstart"), tail:elem.attr("tail")?elem.attr("tail"):undefined, max:elem.attr("max")?elem.attr("max"):undefined}, cache:false, async:true, success:show_data} ); } function main_start() { $("#data").attr({"nextstart": 0, "max": "", "tail": 10000, "update": 5, "file": "C:\\\\ReQuest\\\\mpweb\\log\\mpweb.log"}); window.setTimeout(load_data, 1); } function show_data(data, status, jqxhr) { var data = $("filedata", data); var newdata = data.attr("data"); var start = data.attr("start"); var nextstart = data.attr("nextstart"); var elem = $("#data"); var at_end = ($(document).scrollTop()>=$(document).height()-window.innerHeight-20); elem.attr({tail:"", start:start, nextstart:nextstart}); if (newdata.length) elem.append(htmlspecialchars(newdata)); var delay = parseFloat(elem.attr("update"))*1000; if (isNaN(delay)) delay = 5000; if (at_end) $("html,body").scrollTop($(document).height()); window.setTimeout(load_data, delay); } $(document).ready(main_start);
Proof of Concept
Disclosure Timeline
01.08.2020Vulnerability discovered.
16.08.2020Vendor contacted.
17.10.2020No response from the vendor.
18.10.2020Public security advisory released.
Credits
Vulnerability discovered by Gjoko Krstic
References
Changelog
18.10.2020Initial release
20.10.2020Added reference [1] and [2]
26.10.2020Added reference [3] and [4]
08.12.2025Added reference [5] and [6]