CVE-2020-11832

MEDIUM5.5/ 10.0
Share:
Published: December 31, 2020 at 06:15 PM
Modified: November 21, 2024 at 04:58 AM
Source: security@oppo.com

Vulnerability Description

In functions charging_limit_current_write and charging_limit_time_write in /SM8250_Q_Master/android/vendor/oppo_charger/oppo/oppo_charger.c have not checked the parameters, which causes a vulnerability.

CVSS Metrics

Base Score
5.5
Severity
MEDIUM
Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Weaknesses (CWE)

Source: nvd@nist.gov

AI Security Analysis

01 // Technical Summary

Unvalidated input in the Oppo charger driver allows for arbitrary modification of charging parameters, potentially leading to denial-of-service or device compromise. Attackers can exploit this flaw by sending crafted commands to the vulnerable functions, bypassing crucial parameter checks and causing unexpected behavior. This vulnerability poses a significant risk to the availability and integrity of affected devices.

02 // Vulnerability Mechanism

Step 1: Target Identification: The attacker identifies a vulnerable Oppo device running a susceptible firmware version.

Step 2: Command Injection: The attacker crafts a malicious command, potentially using ADB or other communication channels, to interact with the Oppo charger driver.

Step 3: Parameter Manipulation: The attacker sends a command to either charging_limit_current_write or charging_limit_time_write functions, providing crafted parameters.

Step 4: Function Execution: The vulnerable function receives the malicious parameters.

Step 5: Lack of Validation: The function executes without validating the provided parameters.

Step 6: Impact: The malicious parameters are used to modify the charging behavior, potentially leading to device damage, denial of service, or other unexpected behavior.

03 // Deep Technical Analysis

The vulnerability lies within the charging_limit_current_write and charging_limit_time_write functions in the oppo_charger.c file. These functions are responsible for setting the charging current and charging time limits, respectively. The root cause is the absence of input validation on the parameters passed to these functions. Specifically, the code does not check the values of the parameters before using them. This lack of validation allows an attacker to provide malicious values, potentially leading to a variety of issues. For example, an attacker could set the charging current to an extremely high value, potentially causing overcurrent and damaging the battery or other hardware components. Alternatively, an attacker could set the charging time to an extremely short value, leading to a denial-of-service condition by preventing the device from charging properly. The lack of validation creates a pathway for attackers to manipulate the device's charging behavior, leading to potential hardware damage or service disruption.

CVE-2020-11832 - MEDIUM Severity (5.5) | Free CVE Database | 4nuxd