-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 KL-001-2021-003: CommScope Ruckus IoT Controller Hard-coded System Passwords Title: CommScope Ruckus IoT Controller Hard-coded System Passwords Advisory ID: KL-001-2021-003 Publication Date: 2021.05.26 Publication URL: https://korelogic.com/Resources/Advisories/KL-001-2021-003.txt 1. Vulnerability Details Affected Vendor: CommScope Affected Product: Ruckus IoT Controller Affected Version: 1.7.1.0 and earlier Platform: Linux CWE Classification: CWE-259: Use of Hard-coded Password CVE ID: CVE-2021-33218 2. Vulnerability Description Hard coded, system-level credentials exist on the Ruckus IoT Controller OVA image, and are exposed to attackers who mount the filesystem. 3. Technical Description Ruckus vRIoT server software is available from the software library at: https://support.ruckuswireless.com/software/ Once the OVA is imported into VirtualBox, a VMDK file is created. The VMDK file can be mounted and the directory structure and its contents can be perused. The virtual appliance contains three system accounts with password hashes. The three accounts are 'root', 'admin', and 'vriotha'. The 'admin' account is documented in vendor documentation, but not the other two accounts. The password for 'admin' is documented and can be changed by the user. The password for the 'vriotha' account is 'nplus1user'. The password for the 'vriotha' account is hardcoded into support scripts. The root hash is still undergoing password cracking attempts. The 'admin' and 'vriotha' accounts are restricted in terms of their shell, they do not drop to typical Unix shell access. The virtual appliance does not appear to offer a mechanism for changing the default password from the vendor for the 'root' or 'vriotha' accounts. 4. Mitigation and Remediation Recommendation The vendor has released an updated firmware (1.8.0.0) which remediates the described vulnerability. Firmware and release notes are available at: https://www.commscope.com/globalassets/digizuite/917216-faq-security-advisory-id-20210525-v1-0.pdf 5. Credit This vulnerability was discovered by Jim Becher (@jimbecher) of KoreLogic, Inc. 6. Disclosure Timeline 2021.03.30 - KoreLogic submits vulnerability details to CommScope. 2021.03.30 - CommScope acknowledges receipt and the intention to investigate. 2021.04.06 - CommScope notifies KoreLogic that this issue, along with several others reported by KoreLogic, will require more than the standard 45 business day remediation timeline. 2021.04.06 - KoreLogic agrees to extend disclosure embargo if necessary. 2021.04.30 - CommScope informs KoreLogic that remediation for this vulnerability will be available inside of the standard 45 business day timeline. Requests KoreLogic acquire CVE number for this vulnerability. 2021.05.14 - 30 business days have elapsed since the vulnerability was reported to CommScope. 2021.05.17 - CommScope notifies KoreLogic that the patched version of the firmware will be available the week of 2021.05.24. 2021.05.19 - KoreLogic requests CVE from MITRE. 2021.05.19 - MITRE issues CVE-2021-33218. 2021.05.25 - CommScope releases firmware 1.8.0.0 and associated advisory. 2021.05.26 - KoreLogic public disclosure. 7. Proof of Concept With the VMDK file mounted at the current working directory: $ sudo cat etc/shadow root:$1$root$.6wlmowMW0KVjst8z6Yqa.:17393:0:99999:7::: ... admin:$6$AwyhYDBW$KS5q63LZBuQxPM2RG1N/.TvbaKC5gnoq8ERgMSBGms1EL9IZPrM4SscOvsF/FsoD1fgFjYrJF1as0BSYM0SVa0:17667:0:99999:7::: vriotha:$6$c4jEcmjj$uDjuSxfkzd0QHt/MAGnPJ798izuVhq11MSmkS3iXtDg.iqSumzou4.HauYOrSIYl5JdQlrbZAL7PAkPfrxcxH0:18626:0:99999:7::: $ egrep '^root|^admin|^vriotha' etc/passwd root:x:0:0:root:/root:/bin/bash admin:x:1001:1001::/home/admin:/VRIOT/ops/scripts/ras vriotha:x:1003:1003::/home/vriotha:/usr/bin/rssh /VRIOT/ops/scripts/haN1/n1_ha.py: scpstr = "vriotha@"+slave_ip+":/tmp/authkey >/dev/null 2>&1" #call(['sshpass','-p','"nplus1user"','scp','-o','StrictHostKeyChecking=no','/etc/corosync/authkey',scpstr]) os.system(" ".join(['sshpass','-p','"nplus1user"','scp','-o','StrictHostKeyChecking=no','/etc/corosync/authkey',scpstr])) ... ### Call slave API to create user ##### # HOTST_URL = "https://"+replace_ip+"/service/v1/createUser" # json_request = { # "username":"vriotha", # "password":"nplus1user" ... os.system(" ".join(['sshpass','-p','"nplus1user"','scp','-o','StrictHostKeyChecking=no','/etc/corosync/authkey',scpstr])) /VRIOT/ops/scripts/entrypoint.py: userpwd = 'useradd vriotha ; echo vriotha:nplus1user | chpasswd >/dev/null 2>&1' os.system(userpwd) call(['usermod','-aG','sudo','vriotha'],stdout=devNullFile) call(['chsh','-s','/usr/bin/rssh','vriotha'],stdout=devNullFile) /VRIOT/ops/scripts/haN1/ha_slave.py: scpstr = "vriotha@"+master_ip+":/VRIOT/ha/" os.system(" ".join(['sshpass','-p','"nplus1user"','scp','-o','StrictHostKeyChecking=no','-r',scpstr,'/VRIOT/'+master_ip+'/'])) The contents of this advisory are copyright(c) 2021 KoreLogic, Inc. and are licensed under a Creative Commons Attribution Share-Alike 4.0 (United States) License: http://creativecommons.org/licenses/by-sa/4.0/ KoreLogic, Inc. is a founder-owned and operated company with a proven track record of providing security services to entities ranging from Fortune 500 to small and mid-sized companies. We are a highly skilled team of senior security consultants doing by-hand security assessments for the most important networks in the U.S. and around the world. We are also developers of various tools and resources aimed at helping the security community. https://www.korelogic.com/about-korelogic.html Our public vulnerability disclosure policy is available at: https://korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.3.txt -----BEGIN PGP SIGNATURE----- iQJOBAEBCAA4FiEETtzSIGy8wE6Vn0geUk0uR1lFz/MFAmCuruQaHGRpc2Nsb3N1 cmVzQGtvcmVsb2dpYy5jb20ACgkQUk0uR1lFz/OHNg/+KKZBLCl4sTinRtt94YWg jwtK2HSofbyUzlHnvCEp91NN/hMecRMy5M4bV9YQCkiEB9ROunhjxdwYvgHw5arP bPVODyL2pPEGfkcXDGHzkokvCtrIME6doCFf1AI+ODB+ttSqKjZ3yAIeOvSzebhS WksHXQkyVodcwKooPl6iVlXXhUNSEgFmbakL9BrTNihrk93/vgxBOvgCB/EpQMnS gBbz/cR08vSVVwPpxB2w4oJ18DpnmvPe5Lp30PSjmHz4YwyHgUiZv1dmclUthlJf 1J5VvN8f7Qt47/E/HYlbgblvQTHvgdXBtaiCFOHixLp2wvqwc7sz6QwOG99PGz6g blUjhUMYRy9xLoTy1VLreNacL4Ueinmwm73FIDEKbsS7Oo+GzdzI07r04D5/YFqF 7x/6qy7tcNNFhPvrUR51zsjHjHKKYdV+as0tU7v9BrXYjOm2Hd+ncSlwMeq06FlF 78Rk7bZQxOSTguSAoebcZdxF+Drj/3FgTv39PP5/bbKAaGGQPBpAaOULzQUS440e dkwAQHBmdVDkqaoPLzikUmMwNcLpnVZLqiZQhI9j//a3K3P9UaDmiK7VYm+4EGmM ghj2y4h+HvldwHe2IsMxsvyxiky++eQSeW1aS/waWUauJMsa+6ieKuD8XFmYcmjm 4WAQ+7JAy2n994oCj1tSRvc= =/ne/ -----END PGP SIGNATURE-----