Your smart plug stores your Wi-Fi password — it needs it to connect to your network. Security researchers proved that attackers can extract that password from the plug due to a protocol flaw. TP-Link's privacy policy says nothing about this risk. If someone exploits this, they get access to your entire home network. TP-Link promotes AES-128 encryption as bank-grade security on their marketing page. Independent researchers found that this exact encryption implementation is the weakness that lets attackers intercept your data. They are advertising the vulnerability as a feature.
What they claim: AES 128-bit encryption is a highly secure cryptographic method... making it practically impossible to crack without the correct key
What we found: CVE-2023-38907: Weak CBC-AES128 encryption in Tapo device communication allows traffic interception. University of Catania/London research confirmed this is the vulnerability, not a security feature.
What they claim: Tapo implements TLS 1.2 encryption protocol when it comes to storing and transmitting sensitive information
What we found: University of Catania/London research (SECRYPT 2024) found Tapo devices lack HTTPS for device-to-app communication entirely. No TLS observed in device-to-app traffic.
What they claim: Tapo app (com.tplink.iot) requests CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION, READ_PHONE_STATE, MANAGE_OWN_CALLS, MODIFY_AUDIO_SETTINGS — 41 permissions total
What we found: The Tapo P100 is a relay switch with a Realtek RTL8720CF SoC providing only Wi-Fi and BLE. No camera, microphone, GPS, or any sensors. FCC filing TE7P100 confirms the device has only Wi-Fi and BLE radios.
What they claim: App requests FOREGROUND_SERVICE_MICROPHONE — persistent microphone access via a foreground service
What we found: Privacy policy does not mention microphone data collection for smart plug users. Device is a socket with no microphone. FOREGROUND_SERVICE allows the app to maintain microphone access while running in the background.
What they claim: Policy mentions sharing data with unnamed business partners
What we found: App includes ACCESS_ADSERVICES_AD_ID, ACCESS_ADSERVICES_ATTRIBUTION, AD_ID, and BIND_GET_INSTALL_REFERRER_SERVICE — dedicated advertising attribution and ad tracking permissions. These identify specific ad-tech data flows the policy does not name.
What they claim: Privacy policy is silent on the risk of Wi-Fi credential exposure
What we found: CVE-2023-38906: TP-Link Tapo devices allow unauthenticated session key derivation via the KLAP protocol, enabling command injection and Wi-Fi credential theft. FCC confirms BLE onboarding transfers Wi-Fi credentials to device.
What they claim: Tapo utilizes a comprehensive data defense system to defend against data attacks and threats
What we found: 3 CVEs assigned (CVE-2023-38906, 38907, 38908 — two HIGH, one MEDIUM). TP-Link released only a partial fix in December 2023. Vulnerabilities include command injection, weak encryption, and insufficient authentication.
What they claim: Prominent display of ISO 27001:2022 and ISO 27701:2019 certifications implying product security
What we found: Three unpatched CVEs, weak CBC-AES128 encryption, no HTTPS for device communication, Wi-Fi credential exposure via KLAP protocol. ISO certification covers management processes, not product security.
What they claim: All device commands route through TP-Link cloud servers (euw1-api.tplinkcloud.com, use1-api.tplinkcloud.com, aps1-api.tplinkcloud.com, devs.tplinkcloud.com). Device stops working without internet.
What we found: Neither privacy policy nor marketing materials disclose that the P100 requires permanent internet connectivity for basic operation, or that all commands route through TP-Link servers in multiple regions even for local control.
What they claim: App requests RECEIVE_BOOT_COMPLETED, FOREGROUND_SERVICE, FOREGROUND_SERVICE_DATA_SYNC, WAKE_LOCK — auto-start and persistent background operation
What we found: Privacy policy does not disclose that the Tapo app automatically starts when your phone boots and runs continuously as a foreground service with wake lock to prevent the phone from sleeping it.