In a concerning discovery, researchers have identified a total of 34 unique Windows Driver Model (WDM) and Windows Driver Frameworks (WDF) drivers that could be exploited by non-privileged threat actors to gain full control of devices and execute arbitrary code on the underlying systems.
According to Takahiro Haruyama, a senior threat researcher at VMware Carbon Black, these driver vulnerabilities could allow attackers to erase or alter firmware and even elevate operating system privileges. This research builds on previous studies that used symbolic execution to automate the discovery of vulnerable drivers, focusing specifically on those with firmware access through port I/O and memory-mapped I/O.
Among the identified vulnerable drivers are AODDriver.sys, ComputerZ.sys, dellbios.sys, GEDevDrv.sys, GtcKmdfBs.sys, IoAccess.sys, kerneld.amd64, ngiodriver.sys, nvoclock.sys, PDFWKRNL.sys (CVE-2023-20598), RadHwMgr.sys, rtif.sys, rtport.sys, stdcdrv64.sys, and TdkLib64.sys (CVE-2023-35841). Of these drivers, six allow access to kernel memory, which could be exploited to elevate privilege and bypass security mechanisms like kernel address space layout randomization (KASLR). Furthermore, seven of the drivers, including Intel’s stdcdrv64.sys, could be utilized to erase firmware in the SPI flash memory, potentially rendering the system unbootable. Intel has issued a fix for this specific problem.
VMware also pointed out that while certain WDF drivers, like WDTKernel.sys and H2OFFT64.sys, are not vulnerable in terms of access control, they could be easily weaponized by privileged threat actors for a “Bring Your Own Vulnerable Driver” (BYOVD) attack. This technique has been used by various adversaries, including the North Korea-linked Lazarus Group, to gain elevated privileges and disable security software on compromised endpoints to evade detection.
Haruyama noted that while the current scope of the APIs and instructions targeted by the IDAPython script for automating static code analysis of x64 vulnerable drivers is narrow and limited to firmware access, it could be extended to cover other attack vectors, such as terminating arbitrary processes.