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

CVE-2025-36931

Published: 2025-12-11 20:15:58
Last Modified: 2025-12-12 17:35:37

Description

In GetHostAddress of gxp_buffer.h, there is a possible out of bounds write due to a missing bounds check. 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
gxp_buffer.h GetHostAddress函数 - 所有未修复版本
受影响的Google产品 - 2025年12月1日安全公告前版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-36931 PoC - Buffer Overflow in GetHostAddress (gxp_buffer.h) // This PoC demonstrates the vulnerability in GetHostAddress function // Compile: gcc -o poc poc.c #include <stdio.h> #include <string.h> #include <stdlib.h> // Simulated vulnerable GetHostAddress function void GetHostAddress(char* buffer, char* input, size_t input_len) { // Vulnerable: Missing bounds check // Should check: if (input_len > MAX_BUFFER_SIZE) return ERROR; memcpy(buffer, input, input_len); // No bounds checking! buffer[input_len] = '\0'; } int main() { printf("CVE-2025-36931 PoC - GetHostAddress Buffer Overflow\n"); printf("==================================================\n\n"); char buffer[64]; // Small buffer char malicious_input[256]; // Craft malicious input that exceeds buffer size memset(malicious_input, 'A', sizeof(malicious_input) - 1); malicious_input[sizeof(malicious_input) - 1] = '\0'; printf("Attempting to trigger buffer overflow...\n"); printf("Buffer size: %zu bytes\n", sizeof(buffer)); printf("Input size: %zu bytes\n\n", strlen(malicious_input)); // This will cause buffer overflow due to missing bounds check GetHostAddress(buffer, malicious_input, strlen(malicious_input)); printf("Buffer overflow triggered!\n"); printf("Data written beyond buffer boundary.\n"); printf("This can lead to local privilege escalation.\n"); return 0; } // Mitigation: // 1. Always check input length before copying // 2. Use safe string functions (strncpy, snprintf) // 3. Implement proper bounds checking in GetHostAddress

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-36931", "sourceIdentifier": "[email protected]", "published": "2025-12-11T20:15:57.693", "lastModified": "2025-12-12T17:35:36.877", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In GetHostAddress of gxp_buffer.h, there is a possible out of bounds write due to a missing bounds check. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation."}], "metrics": {"cvssMetricV31": [{"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": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-120"}, {"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://source.android.com/security/bulletin/pixel/2025-12-01", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}