exploit the possibilities

MikroTik RouterOS Null Pointer Dereference / Division-By-Zero

MikroTik RouterOS Null Pointer Dereference / Division-By-Zero
Posted Jul 7, 2020
Authored by Qian Chen

MikroTik RouterOS versions prior to stable 6.47 suffer from multiple null pointer dereference vulnerabilities and one division-by-zero vulnerability.

tags | advisory, vulnerability
MD5 | 844f9866fce4b802fb66ffa43ad52ca1

MikroTik RouterOS Null Pointer Dereference / Division-By-Zero

Change Mirror Download
Advisory: four vulnerabilities found in MikroTik's RouterOS


Details
=======

Product: MikroTik's RouterOS
Affected Versions: through stable 6.47
Fixed Versions: stable 6.47
Vendor URL: https://mikrotik.com/
Vendor Status: fixed version released
CVE: -
Credit: Qian Chen(@cq674350529) of Qihoo 360 Nirvan Team


Product Description
==================

RouterOS is the operating system used on the MikroTik's devices, such as
switch, router and access point.


Description of vulnerabilities
==========================

These four vulnerabilities were tested only against the MikroTik RouterOS
stable release tree when found.
Maybe other release trees also suffer from these vulnerabilities.

PS: The following three memory corruption vulnerabilities are different.

1. NULL pointer dereference vulnerability
The lcdstat process suffers from a memory corruption vulnerability. By
sending a crafted packet,
an authenticated remote user can crash the lcdstat process due to NULL
pointer dereference.

Against stable 6.46.5, the poc resulted in the following crash dump.

# cat /rw/logs/backtrace.log
2020.06.04-15:32:04.67@0:
2020.06.04-15:32:04.67@0:
2020.06.04-15:32:04.67@0: /nova/bin/lcdstat
2020.06.04-15:32:04.67@0: --- signal=11
--------------------------------------------
2020.06.04-15:32:04.67@0:
2020.06.04-15:32:04.67@0: eip=0x0805a26e eflags=0x00010202
2020.06.04-15:32:04.67@0: edi=0x00000000 esi=0x7fbeaedc ebp=0x7fbeae18
esp=0x7fbeadf4
2020.06.04-15:32:04.67@0: eax=0x00000000 ebx=0x7fbeb848 ecx=0x0807f14c
edx=0x00000001
2020.06.04-15:32:04.67@0:
2020.06.04-15:32:04.67@0: maps:
2020.06.04-15:32:04.67@0: 08048000-0807e000 r-xp 00000000 00:0c 1054
/nova/bin/lcdstat
2020.06.04-15:32:04.67@0: 776fd000-77732000 r-xp 00000000 00:0c 964
/lib/libuClibc-0.9.33.2.so
2020.06.04-15:32:04.67@0: 77736000-77750000 r-xp 00000000 00:0c 960
/lib/libgcc_s.so.1
2020.06.04-15:32:04.67@0: 77751000-77760000 r-xp 00000000 00:0c 944
/lib/libuc++.so
2020.06.04-15:32:04.67@0: 77761000-77769000 r-xp 00000000 00:0c 950
/lib/libubox.so
2020.06.04-15:32:04.67@0: 7776a000-777b6000 r-xp 00000000 00:0c 946
/lib/libumsg.so
2020.06.04-15:32:04.67@0: 777bc000-777c3000 r-xp 00000000 00:0c 958
/lib/ld-uClibc-0.9.33.2.so
2020.06.04-15:32:04.67@0:
2020.06.04-15:32:04.67@0: stack: 0x7fbeb000 - 0x7fbeadf4
2020.06.04-15:32:04.67@0: 48 b8 be 7f 18 ae be 7f 95 ab 05 08 a0 e5 07
08 00 00 00 00 4c f1 07 08 48 b8 be 7f dc ae be 7f
2020.06.04-15:32:04.67@0: 00 00 00 00 58 ae be 7f 00 ad 05 08 48 b8 be
7f 00 00 00 00 00 00 00 00 ec 04 76 77 d8 af be 7f
2020.06.04-15:32:04.67@0:
2020.06.04-15:32:04.67@0: code: 0x805a26e
2020.06.04-15:32:04.67@0: 8b 70 fc ff 73 78 e8 1f c0 ff ff 8b 46 10 83
c4

2. NULL pointer dereference vulnerability
The lcdstat process suffers from a memory corruption vulnerability. By
sending a crafted packet,
an authenticated remote user can crash the lcdstat process due to NULL
pointer dereference.

Against stable 6.46.5, the poc resulted in the following crash dump.

# cat /rw/logs/backtrace.log
2020.06.04-15:48:13.77@0:
2020.06.04-15:48:13.77@0:
2020.06.04-15:48:13.77@0: /nova/bin/lcdstat
2020.06.04-15:48:13.77@0: --- signal=11
--------------------------------------------
2020.06.04-15:48:13.77@0:
2020.06.04-15:48:13.77@0: eip=0x080562c6 eflags=0x00010246
2020.06.04-15:48:13.77@0: edi=0xff000000 esi=0x00ff0000 ebp=0x7fd8cb48
esp=0x7fd8cb2c
2020.06.04-15:48:13.77@0: eax=0x00000000 ebx=0x00000000 ecx=0x00000000
edx=0x00000000
2020.06.04-15:48:13.77@0:
2020.06.04-15:48:13.77@0: maps:
2020.06.04-15:48:13.77@0: 08048000-0807e000 r-xp 00000000 00:0c 1054
/nova/bin/lcdstat
2020.06.04-15:48:13.77@0: 776be000-776f3000 r-xp 00000000 00:0c 964
/lib/libuClibc-0.9.33.2.so
2020.06.04-15:48:13.77@0: 776f7000-77711000 r-xp 00000000 00:0c 960
/lib/libgcc_s.so.1
2020.06.04-15:48:13.77@0: 77712000-77721000 r-xp 00000000 00:0c 944
/lib/libuc++.so
2020.06.04-15:48:13.77@0: 77722000-7772a000 r-xp 00000000 00:0c 950
/lib/libubox.so
2020.06.04-15:48:13.77@0: 7772b000-77777000 r-xp 00000000 00:0c 946
/lib/libumsg.so
2020.06.04-15:48:13.77@0: 7777d000-77784000 r-xp 00000000 00:0c 958
/lib/ld-uClibc-0.9.33.2.so
2020.06.04-15:48:13.77@0:
2020.06.04-15:48:13.77@0: stack: 0x7fd8d000 - 0x7fd8cb2c
2020.06.04-15:48:13.77@0: 00 00 00 00 00 00 00 01 80 c1 77 77 01 00 00
00 38 d4 d8 7f 50 5f 08 08 a8 5c 08 08 78 cb d8 7f
2020.06.04-15:48:13.77@0: 79 a2 05 08 78 36 08 08 00 00 00 00 00 de 77
77 8f cf d8 7f ff ff ff ff a8 5d 08 08 00 36 08 08
2020.06.04-15:48:13.77@0:
2020.06.04-15:48:13.77@0: code: 0x80562c6
2020.06.04-15:48:13.77@0: 88 1c 02 89 f3 88 5c 02 01 89 fb 88 5c 02 02
05

3. NULL pointer dereference vulnerability
The lcdstat process suffers from a memory corruption vulnerability. By
sending a crafted packet,
an authenticated remote user can crash the lcdstat process due to NULL
pointer dereference.

Against stable 6.46.5, the poc resulted in the following crash dump.

# cat /rw/logs/backtrace.log
2020.06.04-15:58:23.76@0:
2020.06.04-15:58:23.76@0:
2020.06.04-15:58:23.76@0: /nova/bin/lcdstat
2020.06.04-15:58:23.76@0: --- signal=11
--------------------------------------------
2020.06.04-15:58:23.76@0:
2020.06.04-15:58:23.76@0: eip=0x0805b566 eflags=0x00010202
2020.06.04-15:58:23.76@0: edi=0x08085e70 esi=0x08085bf8 ebp=0x7fc0fca8
esp=0x7fc0fc70
2020.06.04-15:58:23.76@0: eax=0x00000000 ebx=0x7fc106c8 ecx=0x0807f14c
edx=0x00000001
2020.06.04-15:58:23.76@0:
2020.06.04-15:58:23.76@0: maps:
2020.06.04-15:58:23.76@0: 08048000-0807e000 r-xp 00000000 00:0c 1054
/nova/bin/lcdstat
2020.06.04-15:58:23.76@0: 77680000-776b5000 r-xp 00000000 00:0c 964
/lib/libuClibc-0.9.33.2.so
2020.06.04-15:58:23.76@0: 776b9000-776d3000 r-xp 00000000 00:0c 960
/lib/libgcc_s.so.1
2020.06.04-15:58:23.76@0: 776d4000-776e3000 r-xp 00000000 00:0c 944
/lib/libuc++.so
2020.06.04-15:58:23.76@0: 776e4000-776ec000 r-xp 00000000 00:0c 950
/lib/libubox.so
2020.06.04-15:58:23.76@0: 776ed000-77739000 r-xp 00000000 00:0c 946
/lib/libumsg.so
2020.06.04-15:58:23.76@0: 7773f000-77746000 r-xp 00000000 00:0c 958
/lib/ld-uClibc-0.9.33.2.so
2020.06.04-15:58:23.76@0:
2020.06.04-15:58:23.76@0: stack: 0x7fc10000 - 0x7fc0fc70
2020.06.04-15:58:23.76@0: e4 9a 73 77 58 fe c0 7f a8 fc c0 7f 00 00 00
00 58 fe c0 7f 73 00 00 00 9c fc c0 7f 22 ac 70 77
2020.06.04-15:58:23.76@0: 58 fe c0 7f 72 00 00 08 b8 fc c0 7f 5c fd c0
7f 70 5e 08 08 c8 06 c1 7f c8 fc c0 7f ab b8 05 08
2020.06.04-15:58:23.76@0:
2020.06.04-15:58:23.76@0: code: 0x805b566
2020.06.04-15:58:23.76@0: 80 78 08 00 75 0c 52 52 50 53 e8 91 e7 ff ff
83

4. division-by-zero vulnerability
The lcdstat process suffers from a division-by-zero vulnerability. By
sending a crafted packet,
an authenticated remote user can crash the lcdstat process due to
arithmetic exception.

Against stable 6.46.5, the poc resulted in the following crash dump.

# cat /rw/logs/backtrace.log
2020.06.04-16:17:48.62@0:
2020.06.04-16:17:48.62@0:
2020.06.04-16:17:48.62@0: /nova/bin/lcdstat
2020.06.04-16:17:48.62@0: --- signal=8
--------------------------------------------
2020.06.04-16:17:48.62@0:
2020.06.04-16:17:48.62@0: eip=0x08058539 eflags=0x00010297
2020.06.04-16:17:48.62@0: edi=0x0808b0c8 esi=0x00000000 ebp=0x7fffef88
esp=0x7fffef50
2020.06.04-16:17:48.62@0: eax=0x00000008 ebx=0x7ffff030 ecx=0x00000000
edx=0x00000000
2020.06.04-16:17:48.62@0:
2020.06.04-16:17:48.62@0: maps:
2020.06.04-16:17:48.62@0: 08048000-0807e000 r-xp 00000000 00:0c 1054
/nova/bin/lcdstat
2020.06.04-16:17:48.62@0: 77f38000-77f6d000 r-xp 00000000 00:0c 964
/lib/libuClibc-0.9.33.2.so
2020.06.04-16:17:48.62@0: 77f71000-77f8b000 r-xp 00000000 00:0c 960
/lib/libgcc_s.so.1
2020.06.04-16:17:48.62@0: 77f8c000-77f9b000 r-xp 00000000 00:0c 944
/lib/libuc++.so
2020.06.04-16:17:48.62@0: 77f9c000-77fa4000 r-xp 00000000 00:0c 950
/lib/libubox.so
2020.06.04-16:17:48.62@0: 77fa5000-77ff1000 r-xp 00000000 00:0c 946
/lib/libumsg.so
2020.06.04-16:17:48.62@0: 77ff7000-77ffe000 r-xp 00000000 00:0c 958
/lib/ld-uClibc-0.9.33.2.so
2020.06.04-16:17:48.62@0:
2020.06.04-16:17:48.62@0: stack: 0x80000000 - 0x7fffef50
2020.06.04-16:17:48.62@0: 64 ef ff 7f ec b4 f9 77 84 b2 f9 77 ec b4 f9
77 a4 ef ff 7f 01 00 00 00 00 50 00 00 00 00 00 00
2020.06.04-16:17:48.62@0: a4 ef ff 7f 74 5e 08 08 14 00 00 00 30 f0 ff
7f a4 ef ff 7f 28 f0 ff 7f e8 ef ff 7f cc 8e 05 08
2020.06.04-16:17:48.62@0:
2020.06.04-16:17:48.62@0: code: 0x8058539
2020.06.04-16:17:48.62@0: f7 f9 89 45 e0 b8 01 00 00 00 d3 e0 48 31 ff
8b

Solution
========

Upgrade to the corresponding latest RouterOS tree version.


References
==========

[1] https://mikrotik.com/download/changelogs/stable-release-tree


Login or Register to add favorites

File Archive:

August 2020

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Aug 1st
    3 Files
  • 2
    Aug 2nd
    2 Files
  • 3
    Aug 3rd
    32 Files
  • 4
    Aug 4th
    22 Files
  • 5
    Aug 5th
    0 Files
  • 6
    Aug 6th
    0 Files
  • 7
    Aug 7th
    0 Files
  • 8
    Aug 8th
    0 Files
  • 9
    Aug 9th
    0 Files
  • 10
    Aug 10th
    0 Files
  • 11
    Aug 11th
    0 Files
  • 12
    Aug 12th
    0 Files
  • 13
    Aug 13th
    0 Files
  • 14
    Aug 14th
    0 Files
  • 15
    Aug 15th
    0 Files
  • 16
    Aug 16th
    0 Files
  • 17
    Aug 17th
    0 Files
  • 18
    Aug 18th
    0 Files
  • 19
    Aug 19th
    0 Files
  • 20
    Aug 20th
    0 Files
  • 21
    Aug 21st
    0 Files
  • 22
    Aug 22nd
    0 Files
  • 23
    Aug 23rd
    0 Files
  • 24
    Aug 24th
    0 Files
  • 25
    Aug 25th
    0 Files
  • 26
    Aug 26th
    0 Files
  • 27
    Aug 27th
    0 Files
  • 28
    Aug 28th
    0 Files
  • 29
    Aug 29th
    0 Files
  • 30
    Aug 30th
    0 Files
  • 31
    Aug 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2020 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close