CVE-2024-45356
Executive Summary
CVE-2024-45356 is an unauthorized access vulnerability in the Xiaomi phone framework, stemming from improper validation of access controls. This flaw allows attackers to access sensitive methods within the framework, potentially leading to data exfiltration or privilege escalation. With a CVSS score of 7.3 (High), the vulnerability is network-exploitable without authentication, posing a significant risk to Xiaomi device users. The EPSS score of 0.0% indicates low exploitation likelihood currently, but the lack of a patch and public proof-of-concept (POC) status of "None" suggests limited public awareness. This report provides a comprehensive analysis, detection strategies, and mitigation guidance for DevSecOps teams.
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
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Base Score: 7.3 (High)
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No user action required.
- Scope: Unchanged (S:U) – Impact confined to vulnerable component.
- Confidentiality Impact: High (C:H) – Sensitive data exposure.
- Integrity Impact: None (I:N) – No data modification.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: High. The vulnerability allows unauthorized access to sensitive methods, potentially exposing user data, device configurations, or system internals. The lack of a patch increases risk for unmitigated devices.
Deep Dive & Mechanics
The vulnerability resides in the Xiaomi phone framework, likely a system service or API layer that handles inter-process communication (IPC) or system-level method calls. The improper validation flaw means the framework fails to enforce proper authorization checks before granting access to sensitive methods. Attackers can exploit this by sending crafted requests (e.g., via malicious apps or network packets) to invoke methods that should be restricted, such as those for reading device identifiers, accessing secure storage, or modifying system settings.
Attack Vector: The vulnerability is network-accessible, meaning an attacker on the same network (e.g., Wi-Fi) or via a malicious app with network permissions can trigger the flaw. The low attack complexity suggests no advanced techniques are needed.
Impact: Successful exploitation leads to high confidentiality impact, as sensitive methods may expose personal data (contacts, messages, credentials) or system internals (kernel pointers, security configurations). Integrity and availability are not directly affected, but data exposure can lead to further attacks.
Affected Components: The Xiaomi phone framework (likely MIUI system services) is the vulnerable component. Specific versions are unknown, but all Xiaomi devices running unpatched firmware are potentially at risk.
Vulnerable vs. Patched Code
Since no patch is available, a hypothetical vulnerable code snippet and its patched version are provided for illustration.
Vulnerable Code (Java/Kotlin example):
public class FrameworkService {
public void handleRequest(Request req) {
// No authorization check
if (req.getMethod().equals("getSensitiveData")) {
return getSensitiveData();
}
}
}
Patched Code:
public class FrameworkService {
public void handleRequest(Request req) {
// Authorization check added
if (!isAuthorized(req.getCaller())) {
throw new SecurityException("Unauthorized");
}
if (req.getMethod().equals("getSensitiveData")) {
return getSensitiveData();
}
}
private boolean isAuthorized(Caller caller) {
// Validate caller permissions
return caller.hasPermission("android.permission.ACCESS_SENSITIVE_DATA");
}
}
The patch adds a permission check before executing sensitive methods, ensuring only authorized callers can access them.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A Xiaomi device with unpatched firmware (e.g., MIUI 14.x).
- Network access to the device (same Wi-Fi or via a malicious app).
- Knowledge of the framework's IPC interface (e.g., Binder service name).
Exploitation Steps:
- Identify the vulnerable service: Use
dumpsysoradb shellto list system services. - Craft a malicious request: Send an IPC call to the vulnerable service with a method name like
getSensitiveData. - Execute the exploit: Use a custom Android app or script to send the request.
- Extract data: Capture the response containing sensitive information.
Example Exploit Script (Python using adb):
import subprocess
def exploit():
# Send IPC request to vulnerable service
cmd = "adb shell service call <service_name> <method_code>"
result = subprocess.check_output(cmd, shell=True)
print("Exploit output:", result.decode())
if __name__ == "__main__":
exploit()
Note: Replace <service_name> and <method_code> with actual values from the device.
Blue Team (Defense & Detection)
Detection:
- Monitor for unusual IPC calls to system services.
- Use log analysis to detect unauthorized access attempts.
- Deploy network monitoring for anomalous traffic to device ports.
Mitigation:
- Apply firmware updates as soon as available.
- Restrict app permissions and use least privilege.
- Enable device firewalls and VPNs to limit network exposure.
Lab Setup:
- Use an isolated Xiaomi device with a test firmware.
- Set up a monitoring environment with
logcatand network capture tools. - Simulate exploitation to test detection rules.
Indicators of Compromise (IOCs)
- Network: Unusual IPC traffic to Xiaomi system services (e.g., Binder transactions).
- Logs: Entries in
logcatshowing unauthorized method calls (e.g.,SecurityExceptionorAccessDenied). - File: Presence of unknown apps with
BIND_ACCESSIBILITY_SERVICEorSYSTEM_ALERT_WINDOWpermissions. - Process: Suspicious processes invoking
service callcommands. - Registry (Android): Modified system properties or settings.
Example IOC (Logcat):
E/FrameworkService: Unauthorized access attempt to getSensitiveData from pid 1234
Detection Engineering
YARA Rule
rule Xiaomi_Framework_Unauthorized_Access {
meta:
description = "Detects unauthorized access attempts to Xiaomi phone framework"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-45356"
strings:
$s1 = "getSensitiveData" ascii wide nocase
$s2 = "handleRequest" ascii wide nocase
$s3 = "SecurityException" ascii wide nocase
condition:
any of ($s1, $s2, $s3)
}
Sigma Rule
title: Xiaomi Framework Unauthorized Access Attempt
id: xiaomi-framework-unauth-access
status: experimental
description: Detects log entries indicating unauthorized access to Xiaomi phone framework methods
author: Valters IT
date: 2025-04-10
logsource:
product: android
service: logcat
detection:
selection:
- "Unauthorized access attempt to getSensitiveData"
- "SecurityException"
condition: selection
falsepositives:
- Legitimate app updates or system processes
level: high
Suricata Rule
alert ip any any -> any any (msg:"Xiaomi Framework Unauthorized Access Attempt"; content:"getSensitiveData"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Apply firmware updates: Check Xiaomi's official website or MIUI update channel for patches.
- Restrict network access: Use a firewall to block unnecessary ports and services.
- Audit app permissions: Remove apps with excessive permissions (e.g.,
BIND_ACCESSIBILITY_SERVICE). - Enable logging: Monitor
logcatfor suspicious IPC calls.
Long-term Measures:
- Implement code reviews for framework services to enforce authorization.
- Use static analysis tools to detect missing permission checks.
- Deploy runtime application self-protection (RASP) on devices.
- Educate users on installing apps only from trusted sources.
Patch Status: No official patch available. Monitor Xiaomi's security advisories for updates.
Valters IT