Lucene search

K
korelogicJim Becher (@jimbecher)KL-001-2021-004
HistoryMay 26, 2021 - 12:00 a.m.

CommScope Ruckus IoT Controller Hard-coded Web Application Administrator Password

2021-05-2600:00:00
Jim Becher (@jimbecher)
korelogic.com
20
commscope
ruckus iot controller
hard-coded password
linux
cwe-259
cve-2021-33219
firmware 1.8.0.0
vulnerability disclosure

CVSS2

7.5

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS

0.003

Percentile

65.5%

  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-33219

  2. Vulnerability Description

    An undocumented, administrative-level, hard coded web
    application account exists in the IoT Controller OVA which
    cannot be changed by the customer.

  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 two web application accounts with passwords stored
    in clear text on the file system. The two accounts are ‘admin’
    and ‘nplus1user’. The ‘admin’ account is documented in vendor
    documentation, but the ‘nplus1user’ account is undocumented.

    The password for ‘admin’ is documented and can be changed
    by the user. The password for the ‘nplus1user’ account
    is ‘nplus1user’. Both accounts are administrative-level
    accounts. The virtual appliance does not appear to offer a
    mechanism for changing the default password from the vendor
    for the ‘nplus1user’ account.

  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-33219.
    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:
    $ more ./VRIOT/authServer/app/authapi# more init.py

    try:
    if not Account.objects.count()>0:
    admin_acc = Account()
    admin_acc.username = ‘admin’
    admin_acc.first_name = ‘Ed’
    admin_acc.last_name = ‘Sy’
    admin_acc.company = ‘Ruckus’
    admin_acc.email = ‘[email protected]
    admin_acc.password = pbkdf2_sha256.hash(‘admin’)
    admin_acc.send_notification = False
    admin_acc.save()
    with open(‘/var/log/auth_mongo_conn.log’,‘a+’) as f:
    f.write(‘Admin Account Created Succssfully!’)

          admin_acc = Account()
          admin_acc.username = 'nplus1user'
          admin_acc.first_name = 'Ed'
          admin_acc.last_name = 'Sy'
          admin_acc.company = 'Ruckus'
          admin_acc.email = '[email protected]'
          admin_acc.password = pbkdf2_sha256.hash('nplus1user')
    

Affected configurations

Vulners
Node
commscoperuckus_iot_controllerRange1.7.1.0
VendorProductVersionCPE
commscoperuckus_iot_controller*cpe:2.3:a:commscope:ruckus_iot_controller:*:*:*:*:*:*:*:*

CVSS2

7.5

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS

0.003

Percentile

65.5%