Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

MikroTik RouterOS Multiple Vulnerabilities

High

Synopsis

CVE-2019-3976: Relative Path Traversal in NPK Parsing

RouterOS 6.45.6 Stable, RouterOS 6.44.5 Long-term, and below are vulnerable to an arbitrary directory creation vulnerability via the upgrade package's name field. If an authenticated user installs a malicious package then a directory could be created and the developer shell could be enabled.

See option_npk in our research GitHub for a proof of concept.

CVE-2019-3977: Insufficient Validation of Upgrade Package's Origin

RouterOS 6.45.6 Stable, RouterOS 6.44.5 Long-term, and below insufficiently validate where upgrade packages are download from when using the autoupgrade feature. Therefore, a remote attacker can trick the router into "upgrading" to an older version of RouterOS and possibly resetting all the system's usernames and passwords.

CVE-2019-3978: Insufficient Protections of a Critical Resource (DNS Requests/Cache)

RouterOS versions 6.45.6 Stable, 6.44.5 Long-term, and below allow remote unauthenticated attackers to trigger DNS queries via port 8291. The queries are sent from the router to a server of the attacker's choice. The DNS responses are cached by the router, potentially resulting in cache poisoning.

See winbox_dns_request in our research GitHub for a proof of concept.

CVE-2019-3979: Improper DNS Response Handling

RouterOS versions 6.45.6 Stable, 6.44.5 Long-term, and below are vulnerable to a DNS unrelated data attack. The router adds all A records to its DNS cache even when the records are unrelated to the domain that was queried. Therefore, a remote attacker controlled DNS server can poison the router's DNS cache via malicious responses with additional and untrue records.

Combined

By chaining these vulnerabilities, an unauthenticated remote attacker with access to port 8291 on the router, can perform a RouterOS downgrade, reset the system passwords, and potentially gain a root shell.

Solution

Upgrade to version 6.45.7 Stable or 6.44.6 Long-term or newer.

Additionally, disable the Winbox interface. If you must use it, restrict access to specific IP addresses and never open the port to the internet. Finally, while not related to this disclosure, always disable the default admin user.

Disclosure Timeline

09/10/19 - Tenable asks MikroTik for a public key.
09/11/19 - MikroTik provides one.
09/11/19 - Tenable discloses CVE-2019-3976 and CVE-2019-3977 to [email protected]. 90 day is Dec. 11, 2019.
09/13/19 - Tenable discloses CVE-2019-3978 and CVE-2019-3979 to [email protected]. 90 day is Dec. 13, 2019.
09/13/19 - Tenable asks MikroTik to confirm decryption.
09/16/19 - Tenable and MikroTik exchange a handful of emails on decryption issues.
09/17/19 - MikroTik is able to decrypt.
10/02/19 - Tenable checks in with MikroTik
10/03/19 - MikroTik indicates all issues are fixed but release is pending.
10/03/19 - Tenable thanks MikroTik.
10/17/19 - Tenable checks in with MikroTik.
10/28/19 - Mikrotik releases patches.

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]

Risk Information

Tenable Advisory ID: TRA-2019-46
Credit:
Jacob Baines
CVSSv2 Base / Temporal Score:
7.1 / 5.9
CVSSv2 Vector:
AV:N/AC:M/Au:N/C:N/I:C/A:N
Affected Products:
RouterOS Stable 6.45.6 and below
RouterOS Long-term 6.44.5 and below
Risk Factor:
High

Advisory Timeline

October 30, 2019 - Fixed typo