Multiple vulnerabilities have been identified in the TP-Link Omada system, a software-defined networking solution widely used by small to medium-sized businesses.
These vulnerabilities, if exploited, could allow attackers to execute remote code, leading to severe security breaches.
The affected devices include wireless access points, routers, switches, VPN devices, and hardware controllers for the Omada software.
Vulnerability Details
Identified Vulnerabilities
Twelve unique vulnerabilities were identified and reported to the vendor following our responsible disclosure policy.
Cisco Talos researchers have identified twelve unique vulnerabilities in the TP-Link Omada system.
These vulnerabilities were reported to the vendor following a responsible disclosure policy. The affected devices include:
- EAP 115 and EAP 225 wireless access points
- ER7206 gigabit VPN router
- Omada software controller
Scan Your Business Email Inbox to Find Advanced Email Threats - Try AI-Powered Free Threat Scan
The vulnerabilities are categorized as follows:
- TALOS-2023-1888: A stack-based buffer overflow in the web interface Radio Scheduling functionality of the TP-Link AC1350 Wireless MU-MIMO Gigabit Access Point (EAP225 V3) v5.1.0, build 20220926. This can lead to remote code execution.
- TALOS-2023-1864: A memory corruption vulnerability in the web interface functionality of the same device, leading to denial of service.
- TALOS-2023-1862: A command execution vulnerability in the tddpd enable_test_mode functionality of the TP-Link AC1350 Wireless MU-MIMO Gigabit Access Point (EAP225 V3) and TP-Link N300 Wireless Access Point (EAP115 V4). This can lead to arbitrary command execution.
- TALOS-2023-1861: A denial-of-service vulnerability in the TDDP functionality of the TP-Link AC1350 Wireless MU-MIMO Gigabit Access Point (EAP225 V3), allowing an adversary to reset the device to factory settings.
- TALOS-2023-1859: A post-authentication command execution vulnerability in the web filtering functionality of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1858: A post-authentication command injection vulnerability when configuring the web group member of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1857: A post-authentication command injection vulnerability when configuring the WireGuard VPN functionality of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1856: A post-authentication command injection vulnerability when setting up the PPTP global configuration of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1855: A post-authentication command injection vulnerability in the GRE policy functionality of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1854: A post-authentication command injection vulnerability in the IPsec policy functionality of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1853: A post-authentication command injection vulnerability in the PPTP client functionality of the TP-Link ER7206 Omada Gigabit VPN Router.
- TALOS-2023-1850: A command execution vulnerability in the guest resource functionality of the TP-Link ER7206 Omada Gigabit VPN Router.
Technical Details
TDDP on Wireless Access Points
The TP-Link Device Debug Protocol (TDDP) is available on many devices and is exposed for 15 minutes of a device’s runtime. This service allows remote servicing without manual activation.
During this time, various functions on the device are exposed, which can be exploited by attackers.
Example Code Snippet:
struct tddp_header {
uint8_t version;
uint8_t type;
uint8_t code;
uint8_t direction;
uint32_t pay_len;
uint16_t pkt_id;
uint8_t sub_type;
uint8_t reserved;
uint8_t digest[0x10];
};
Payload Construction:
Python
digest_req = b''
digest_req += struct.pack('B', self.version)
digest_req += struct.pack('B', self.type)
digest_req += struct.pack('B', self.code)
digest_req += struct.pack('B', self.direction)
digest_req += struct.pack('>L', self.pkt_len)
digest_req += struct.pack('>H', self.pkt_id)
digest_req += struct.pack('B', self.sub_type)
digest_req += struct.pack('B', self.reserved)
digest_req += b'x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00'
digest_req += self.payload
digest = hashlib.md5(digest_req).digest()
Vulnerability Impact
Factory Reset Device (TALOS-2023-1861)
The TDDP service can factory reset the device through a single ENC_CMD_OPT request, passing a subtype code of 0x49 via the payload field.
This causes the device to reset its configuration to the factory default and act abnormally until the next power cycle.
Gain Root Access (TALOS-2023-1862)
The TDDP service can also indirectly obtain root access on specific devices through the enableTestMode command.
This command causes the device to execute a shell script from a predefined address, allowing an attacker to execute any command as the root user.
The discovery of these vulnerabilities highlights the importance of regular security assessments and timely patching of network devices.
TP-Link has been notified and has released patches to address these issues.
Users are strongly advised to update their devices to the latest firmware to mitigate potential risks.
Free Webinar! 3 Security Trends to Maximize MSP Growth -> Register For Free