5.3.1 Smart Bulb Turned on and not Configured
Before a smart bulb Tapo L530E can be used, it must
be associated with a Tapo account. There are two rea-
sons why a smart bulb may not be associated with any
accounts: because it has been reset, or it has not been
configured yet. In this Section, we discuss the process
of associating the smart bulb with a Tapo account.
An unconfigured or newly reset smart bulb starts
a public access point with SSID Tapo Bulb XXXX,
where XX XX are four decimal places. The smart bulb
also acts as a switch within the network it generates.
In order to configure it and associate it with their Tapo
account, the user must connect to the Wi-Fi network
started by the smart bulb itself.
After that, the Tapo app tries to locate the smart
bulb. To do this, it starts sending bulb discovery re-
quest messages to broadcast. In this case, the data
field of these messages is empty. After the identifica-
tion of the smart bulb, the Tapo app starts the TSKEP
protocol with it. The values set in the login message
as username and password are fixed values that the
Tapo app uses every time it configures a new device.
Once the symmetric key is obtained, Tapo app
sends to the smart bulb the SSID and the password
of the Wi-Fi network to which the smart bulb must
connect. The Tapo app also sends the credentials of
the Tapo account to which it must be associated. The
credentials are then stored by the smart bulb. Through
these credentials, smart bulb is able to authenticate all
subsequent requests of Tapo app. At this point, the
smart bulb turns its access point off and connects to
the specified Wi-Fi network. The smart bulb starts
communicating with the cloud server to complete its
setup. Hence, the Wi-Fi network to which the smart
bulb connects must have Internet access.
5.3.2 Smart Bulb Already Configured
Let us now consider the case where the smart bulb is
associated with a Tapo account and it is ready to be
used. As mentioned before, it can be controlled either
locally or remotely via the Tapo cloud. To do so, the
Tapo application initially tries to locate the smart bulb
within the network with a bulb discovery request mes-
sage. If it detects it (i.e., it gets a response) then the
interaction happens locally via Bulb-App communi-
cations, which are the subject of our analysis. Other-
wise, if the Tapo app does not receive any valid bulb
discovery response, then it tries to check the smart
bulb remotely. If the smart bulb is not detectable even
remotely then it is determined offline.
6 VULNERABILITY
ASSESSMENT
The assessment following the information gathered so
far highlights four vulnerabilities.
Vulnerability 1 – Lack of the Smart Bulb Authen-
tication with the Tapo App. Improper Authentica-
tion (MITRE, 2006a) in Tapo L503E allows an adja-
cent attacker to impersonate the Tapo L530E with the
Tapo app during the TSKEP step.
In the TSKEP step, unlike the Bulb Discovery
step, the protocol used to exchange the session key
does not give the Tapo app any evidence of its peer’s
identity. Hence, an attacker is able to authenticate to
the Tapo app as the Tapo L530E or as another device:
in fact, this vulnerability is present in all Tapo smart
devices that use the TSKEP protocol.
The CVSS v3.1 score that we calculate is 8.8,
meaning High severity. Precisely: Attack Vector:
Adjacent; Attack Complexity: Low; Privileges Re-
quired: None; User Interaction: Required; Scope:
Changed; Confidentiality: High; Integrity: High;
Availability: High. In particular, Attack Complex-
ity is low because the attacker could impersonate the
bulb by implementing the protocol messages to re-
spond to the calling app. Following that, he could
obtain the user password on the Tapo app, then fully
impersonate the user and manipulate at will any target
Tapo device of the same user. Precisely, by imperson-
ating the bulb at setup time as explained above, the
attacker would receive the victim’s Wi-Fi SSID and
password from the Tapo app, so that he could then
impersonate the user by her password at each session
with the target device, which could be any Tapo de-
vice of the user’s. The attacker could also obtain the
device-chosen session key, which he could then relay
to the user’s genuine app and effectively interpose.
Vulnerability 2 – Hard-Coded Short Check-
sum Shared Secret. Protection Mechanism Fail-
ure (MITRE, 2008) in Tapo L503E allows an adjacent
attacker to obtain the secret used for authentication
during the Bulb Discovery phase.
The shared secret used for Bulb Discovery’s mes-
sages authentication is short and hard-coded both in
the Tapo app and in the Tapo L530E. Therefore, it
can be obtained in the following ways:
1. Brueforcing, because of its shortness.
2. Decompiling the Tapo app.
The CVSS v3.1 score that we calculate is 7.6,
meaning High severity. Precisely: Attack Vector:
SECRYPT 2023 - 20th International Conference on Security and Cryptography
224