← Back to Feed CACHED · 2026-10-06 19:15:25 · CACHE_KEY CVE-2026-13585
CVE-2026-13585 · CWE-226 · Disclosed 2026-07-15

ASUS bsitf.sys BIOS Flash Driver Unvalidated Kernel Memory Allocation and Physical Address Disclosure

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

Like leaving a spare master key inside the maintenance closet that only janitors can reach

CVE-2026-13585 affects the ASUS bsitf.sys / AsusBSItf.sys BIOS Flash Driver shipped with ASUS System Control Interface v3 (< v3.1.66.0), ASUS System Control Interface (< v1.1.40.0), and ASUS Business Manager (≤ v3.0.38.0). The driver exposes IOCTL 0x222808, which allocates physically contiguous kernel memory via MmAllocateContiguousMemory, maps it into the calling process via MDL, and hands back both the user-space pointer *and the physical address* — with zero validation on size, no cap on allocation count, and no cleanup mechanism. A local administrator can exhaust the kernel NonPagedPool to bluescreen the host, or harvest leaked physical addresses to defeat KASLR and stage DMA or kernel exploit chains. On ancient v3.0.10.0 builds the pool is even NonPagedPool (executable), making shellcode staging trivially possible if a secondary control-flow hijack exists. The vulnerability was discovered by researcher Hayaturehman Ahmadzai using his open-source *DeepZero* AI agent pipeline, responsibly disclosed to ASUS PSIRT on April 6 2026, and publicly disclosed with a Rust-based PoC on July 15 2026.

The CISA ADP vulnrichment scored this 8.2 (High) on CVSS 4.0 — which is technically defensible given the scope-change to the kernel subsystem. But that score ignores the elephant in the room: the attacker already has local administrator privileges. In an enterprise context this means the adversary is already past initial access, past privilege escalation, and sitting at the admin console of a single endpoint. Microsoft itself does not treat admin-to-kernel as a security boundary. The incremental blast radius — per-host DoS and a physical-address information leak — is real but modest compared to the access the attacker already holds. The driver *is* cataloged on loldrivers.io and is a valid BYOVD candidate, but it offers weaker primitives (allocate-and-map, not direct read/write) than the 35+ other BYOVD drivers already circulating in ransomware kits. No in-the-wild exploitation of this CVE has been observed, EPSS sits at the 16th percentile, and it is not KEV-listed. A MEDIUM assessment is appropriate.

"Admin-to-kernel memory primitive on ASUS OEM driver — real but requires the keys to the castle first"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Achieve local administrator on target

The attacker obtains interactive local admin on a Windows host. This may be via credential theft, RDP, lateral movement, or social engineering. The entire chain is gated on this step — without SeLoadDriverPrivilege or equivalent admin rights, the \\.\.\\bsitf device cannot be opened. This prerequisite implies the adversary has already completed initial access and privilege escalation phases of the kill chain.
Conditions required:
  • Interactive or service-level local administrator session on target Windows host
Where this breaks in practice:
  • Requires successful initial access and privilege escalation — two full kill-chain phases completed
  • MFA, EDR, and PAM controls all must have failed or been bypassed before this step
  • On non-ASUS hardware, the attacker must also side-load the signed driver (BYOVD), requiring admin to register it via sc.exe create
Detection/coverage: EDR process telemetry for new service creation; Windows Event ID 7045 (new service installed); Sysmon Event ID 6 (driver loaded)
STEP 02

Ensure bsitf.sys is loaded

On ASUS hardware the driver is typically already present under C:\Windows\System32\drivers\. If the target is non-ASUS, the attacker brings a signed copy and registers it: sc.exe create bsitf binPath=C:\windows\temp\bsitf.sys type=kernel && sc.exe start bsitf. The driver is signed by ASUSTeK COMPUTER INC. and will load on systems without HVCI or WDAC driver-block policies.
Conditions required:
  • Target runs Windows (any version supporting the driver)
  • HVCI / WDAC driver-block policy does NOT cover bsitf.sys hashes
  • Admin privileges to register kernel service
Where this breaks in practice:
  • HVCI-enabled systems with Microsoft's recommended driver blocklist will refuse the load for most known-bad hashes (only 2 of 14 known samples are HVCI-compatible per loldrivers.io)
  • WDAC policies in enterprise environments increasingly block unsigned or known-vulnerable drivers
  • Modern EDR agents flag sc.exe create … type=kernel as high-severity
Detection/coverage: WDAC/HVCI audit-mode events (Code Integrity Event ID 3089); loldrivers.io YARA rules; Sysmon driver-load events; EDR behavioral detections for BYOVD patterns
STEP 03

Open device handle and send IOCTL 0x222808

The attacker opens \\\\.\\bsitf and sends IOCTL 0x222808 with a caller-specified allocation size. The driver calls MmAllocateContiguousMemory with the user-supplied size, maps the result into the calling process via an MDL, and returns both the user-space virtual address and the physical address. No size validation, no allocation cap, no cleanup on handle close.
Conditions required:
  • bsitf.sys loaded and device interface reachable
  • Calling process has admin-level handle to the device
Where this breaks in practice:
  • Kernel exploit mitigations (SMEP, SMAP on supported CPUs) limit what can be done with the mapped memory alone
  • The physical address leak is useful only if chained with a control-flow hijack or DMA attack — neither is provided by this CVE alone
Detection/coverage: Kernel driver audit logging; ETW traces for MmAllocateContiguousMemory calls at unusual frequency; memory pressure alerts from performance monitoring
STEP 04

Achieve impact: DoS or info leak

DoS path: Repeated IOCTL calls with large sizes exhaust the kernel NonPagedPool, triggering a DRIVER_IRQL_NOT_LESS_OR_EQUAL or SYSTEM_SERVICE_EXCEPTION bugcheck — a bluescreen that takes down the single host. Info-leak path: The physical addresses returned defeat KASLR and can be used to map kernel structures for subsequent exploitation, but a separate vulnerability is required to achieve code execution. On v3.0.10.0 only, the NonPagedPool (executable) allocation allows writing shellcode at a known address, but no control-flow redirection mechanism is provided by this CVE.
Conditions required:
  • Successful IOCTL call from Step 3
  • For code execution: a secondary control-flow hijack vulnerability
Where this breaks in practice:
  • DoS is per-host — no lateral blast radius
  • Info leak alone does not grant code execution without a secondary vulnerability
  • Crash-recovery mechanisms (Windows Error Recovery, auto-restart) limit sustained DoS
  • Enterprise environments with kernel crash monitoring will detect and respond quickly
Detection/coverage: Windows crash dump analysis (!analyze -v in WinDbg); NonPagedPool usage monitoring via perfmon counters; SIEM alerts on unexpected system reboots
03 · Compensating Control

1
MEDIUM 5.0→IGNORE 0.0
SEVERITY REDUCED
Deploy WDAC or HVCI driver-block policy covering all 14 known bsitf.sys hashes — Windows Defender Application Control (WDAC) file-rule policies or Hypervisor-protected Code Integrity (HVCI) can block the vulnerable driver from loading entirely, neutralizing both the native-install and BYOVD attack paths. Import the SHA-256 hashes from the loldrivers.io entry into your WDAC policy. This is the single most effective control and should be tested in audit mode first, then enforced. No noisgate mitigation SLA applies at MEDIUM — go straight to the 365-day remediation window, but this control is low-effort and should be deployed proactively.
2
MEDIUM 5.0→IGNORE 0.0
SEVERITY REDUCED
Uninstall ASUS Business Manager and System Control Interface on non-ASUS hardware — If the ASUS management software was installed manually or bundled with third-party images on non-ASUS hardware, remove it entirely. On ASUS hardware where the software is needed, update to the fixed version (System Control Interface v3 ≥ v3.1.66.0 or SCI ≥ v1.1.40.0). Removal eliminates the default-present driver; update replaces the vulnerable IOCTL handler. Target completion within the 365-day noisgate remediation SLA for MEDIUM.
3
MEDIUM 5.0→IGNORE 0.0
SEVERITY REDUCED
Update ASUS System Control Interface to patched version — Apply the vendor fix: System Control Interface v3 ≥ v3.1.66.0 or System Control Interface ≥ v1.1.40.0 via ASUS Live Update, MyASUS, or direct download. The patched driver adds size validation, allocation caps, and proper cleanup on handle close. This is the definitive remediation. Deploy within the 365-day noisgate remediation SLA for MEDIUM severity.
4
MEDIUM 5.0→LOW 3.5
SEVERITY REDUCED
Monitor for BYOVD driver-load patterns via EDR and Sysmon — Configure EDR and/or Sysmon to alert on Event ID 6 (driver loaded) and Windows Event ID 7045 (new service installed) where the driver image matches known bsitf.sys hashes or the service name matches bsitf. This won't prevent exploitation but provides early detection of BYOVD attempts using this driver. Deploy as a standing detection rule.
What doesn't work
  • Network firewalls / segmentation — The attack vector is purely local; no network traffic is involved in the exploitation. Firewall rules provide zero friction against this CVE.
  • MFA / conditional access — The attacker already has local admin. MFA protects authentication flows, not post-authentication kernel driver interactions.
  • Antivirus signature scanning — The driver is legitimately signed by ASUSTeK COMPUTER INC. and is not malware. AV will not flag it. The PoC itself is a standard DeviceIoControl call that is indistinguishable from legitimate driver usage.
  • Windows Defender Exploit Guard (ASR rules) — Current ASR rules do not cover kernel driver IOCTL abuse. ASR targets Office macros, script interpreters, and credential theft — not signed driver exploitation.
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNot observed. Not listed in CISA KEV. No GreyNoise or Shodan scanning activity detected. No reports of this CVE being weaponized in ransomware or APT campaigns as of October 2026.
Proof-of-ConceptPublic. Rust-based PoC published by Hayaturehman Ahmadzai on July 15 2026. Demonstrates kernel memory allocation, userspace mapping, and physical address retrieval. DeepZero automated pipeline repo at github.com/416rehman/deepzero. No entries found on pocindex.io for this CVE ID.
EPSS0.00163 (0.163%) — approximately 16th percentile. Very low modeled probability of exploitation in the next 30 days.
KEV StatusNot listed in CISA Known Exploited Vulnerabilities catalog as of 2026-10-07.
CVSS VectorCVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:H/SI:N/SA:H — CISA ADP vulnrichment score of 8.2 (High). Note: this is CVSS 4.0 with scope change reflecting kernel-level impact from an admin-context attack. No vendor-assigned CVSS score exists.
Affected VersionsASUS System Control Interface v3 < v3.1.66.0, ASUS System Control Interface < v1.1.40.0, ASUS Business Manager ≤ v3.0.38.0. Driver file bsitf.sys versions 3.0.10.0, 3.1.10.0, 3.1.25.0 confirmed vulnerable.
Fixed VersionsSystem Control Interface v3 ≥ v3.1.66.0, System Control Interface ≥ v1.1.40.0, Business Manager > v3.0.38.0. Update via ASUS Live Update, MyASUS, or manual download from ASUS support.
BYOVD CatalogDriver bsitf.sys is cataloged on loldrivers.io with 14 known hash samples. Only 2 of 14 are HVCI-compatible. Previously tracked under CVE-2024-33221 for older privilege-escalation primitives.
Disclosure Timeline2026-04-06: Discovery and PoC on Windows 11 24H2; ASUS PSIRT notified. 2026-07-14: CVE assigned. 2026-07-15: Vendor advisory and public disclosure via Full Disclosure mailing list.
ResearcherHayaturehman Ahmadzai (blog.ahmadz.ai). Discovery via the *DeepZero* AI agent pipeline using Ghidra decompilation, Semgrep pattern matching, and Gemini 2.5 Pro + Claude 3.7 for analysis and PoC generation.

Sources.

  1. NVD — CVE-2026-13585
  2. Full Disclosure — Hayaturehman Ahmadzai writeup and PoC
  3. Full Disclosure Mailing List — July 2026
  4. loldrivers.io — bsitf.sys driver entry
  5. DeepZero — AI Agent Pipeline for Driver Zero-Day Discovery
  6. OpenCVE — CVE-2026-13585
  7. The Hacker News — 54 EDR Killers Use BYOVD (BYOVD landscape context)
  8. Strix.ai — CVE-2026-13585 Analysis
05 · The Call

Final Verdict
= UNCHANGED to MEDIUM (5.0/10)

Why this verdict

  • Admin prerequisite is the dominant friction. The entire chain requires local administrator privileges — meaning the attacker has already completed initial access AND privilege escalation. This is not a vulnerability that enables compromise; it's a post-compromise utility that provides a marginal kernel primitive to an attacker who already owns the box.
  • Per-host blast radius with no lateral movement. DoS crashes one system. Physical address disclosure is useful only on the exploited host and requires chaining with a *separate* control-flow hijack vulnerability to achieve code execution. There is no network propagation, no credential harvesting, no domain escalation inherent in this CVE.
  • BYOVD utility is real but marginal. The driver is cataloged on loldrivers.io and is a valid BYOVD candidate, but its primitives (allocate-and-map kernel memory, physical address leak) are substantially weaker than the direct physical memory R/W, process handle manipulation, and callback registration offered by the 35+ drivers already circulating in active ransomware BYOVD kits. No evidence this driver has been adopted by threat actors.
  • Role multiplier: ASUS System Control Interface / Business Manager is consumer and SMB OEM software. ASUS holds ~9-10% of the global laptop market but a smaller share (~3-5%) of enterprise fleets. ASUS hardware is not canonically deployed as domain controllers, hypervisors, identity providers, certificate authorities, CI/CD infrastructure, backup servers, or network edge appliances. The high-value-role floor does not apply to this component. In the BYOVD scenario, the driver can theoretically reach any Windows host including high-value systems, but (a) the attacker already has admin, (b) 12 of 14 known driver hashes are blocked by HVCI, and (c) superior BYOVD alternatives exist. The incremental risk to high-value roles from *this specific driver* is negligible.
  • No exploitation signal. EPSS is 0.163% (16th percentile), not KEV-listed, no GreyNoise/Shodan scanning, no observed campaigns. The PoC is public but demonstrates a capability that admin already largely possesses through other means.

Why not higher?

The admin prerequisite means this vulnerability does not enable initial access or privilege escalation — it provides a marginal kernel primitive to an attacker who already has full administrative control of the endpoint. The blast radius is strictly per-host with no lateral movement capability. The BYOVD angle is theoretically concerning but practically moot: the specific primitives (allocate-and-map, not direct R/W) are inferior to dozens of other BYOVD drivers already in active use, and HVCI blocks 12 of 14 known samples. Elevating to HIGH would overstate the incremental risk to defenders who have already lost admin on an endpoint.

Why not lower?

A public PoC exists and the driver is signed by a major OEM, meaning it *can* be side-loaded onto non-ASUS systems. The DoS primitive is trivially reliable — a single IOCTL call with a large size will crash the host. Physical address disclosure, while requiring chaining, is a genuine KASLR bypass that could assist a sophisticated attacker building a kernel exploit chain. The loldrivers.io cataloging ensures security researchers and red teams are aware of it. Dropping to LOW would understate the reliability of the DoS and the potential BYOVD utility.

06 · Verification

Crowdsourced verification payload.

Run this script on each target Windows host as a local administrator. Execute via powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-13585.ps1. No special modules required. The script checks for the presence and version of bsitf.sys and the associated ASUS software registry entries.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#Requires -RunAsAdministrator
<#
  Check-CVE-2026-13585.ps1
  Detects whether the host is vulnerable to CVE-2026-13585
  (ASUS bsitf.sys arbitrary physical memory mapping)
  Output: VULNERABLE / PATCHED / UNKNOWN
  Exit codes: 1 = VULNERABLE, 0 = PATCHED, 2 = UNKNOWN
#>

$ErrorActionPreference = 'SilentlyContinue'
$vulnerable = $false
$found = $false

# Known driver file locations
$driverPaths = @(
    "$env:SystemRoot\System32\drivers\bsitf.sys",
    "$env:SystemRoot\System32\drivers\AsusBSItf.sys"
)

# Check for driver files
foreach ($path in $driverPaths) {
    if (Test-Path $path) {
        $found = $true
        $fileVersion = (Get-Item $path).VersionInfo.FileVersionRaw
        Write-Host "[*] Found driver: $path"
        Write-Host "[*] Driver version: $fileVersion"

        # Vulnerable versions: 3.0.10.0, 3.1.10.0, 3.1.25.0, and anything below 3.1.66.0
        # for SCI v3, or below 1.1.40.0 for SCI v1
        $major = $fileVersion.Major
        $minor = $fileVersion.Minor
        $build = $fileVersion.Build

        if ($major -eq 3 -and $minor -le 1 -and $build -lt 66) {
            $vulnerable = $true
            Write-Host "[!] Driver version $fileVersion is BELOW fixed version 3.1.66.0"
        } elseif ($major -eq 1 -and ($minor -lt 1 -or ($minor -eq 1 -and $build -lt 40))) {
            $vulnerable = $true
            Write-Host "[!] Driver version $fileVersion is BELOW fixed version 1.1.40.0"
        } elseif ($major -lt 1) {
            $vulnerable = $true
            Write-Host "[!] Driver version $fileVersion is BELOW all known fixed versions"
        } else {
            Write-Host "[+] Driver version $fileVersion appears patched"
        }
    }
}

# Check for ASUS software in registry
$regPaths = @(
    'HKLM:\SOFTWARE\ASUS\ASUS System Control Interface',
    'HKLM:\SOFTWARE\ASUS\ASUS Business Manager',
    'HKLM:\SOFTWARE\WOW6432Node\ASUS\ASUS System Control Interface',
    'HKLM:\SOFTWARE\WOW6432Node\ASUS\ASUS Business Manager'
)

foreach ($regPath in $regPaths) {
    $reg = Get-ItemProperty -Path $regPath -ErrorAction SilentlyContinue
    if ($reg) {
        $found = $true
        $ver = $reg.Version
        if (-not $ver) { $ver = $reg.DisplayVersion }
        Write-Host "[*] Registry key found: $regPath (Version: $ver)"
    }
}

# Check if driver is currently loaded
$loadedDriver = Get-WmiObject Win32_SystemDriver | Where-Object { $_.Name -match 'bsitf' -or $_.DisplayName -match 'bsitf' -or $_.DisplayName -match 'AsusBSItf' }
if ($loadedDriver) {
    $found = $true
    Write-Host "[*] Driver service is registered: $($loadedDriver.Name) — State: $($loadedDriver.State)"
}

# Check WDAC/HVCI status as compensating control
$hvci = Get-CimInstance -ClassName Win32_DeviceGuard -Namespace 'root\Microsoft\Windows\DeviceGuard' -ErrorAction SilentlyContinue
if ($hvci -and $hvci.VirtualizationBasedSecurityStatus -eq 2) {
    Write-Host "[+] HVCI is ENABLED — BYOVD risk is reduced (12/14 known hashes blocked)"
} else {
    Write-Host "[-] HVCI is NOT enabled — BYOVD side-loading of bsitf.sys is possible"
}

# Verdict
Write-Host ''
if (-not $found) {
    Write-Host 'UNKNOWN — No ASUS bsitf.sys driver or related software detected on this host.'
    exit 2
} elseif ($vulnerable) {
    Write-Host 'VULNERABLE — Vulnerable version of bsitf.sys detected. Update ASUS System Control Interface immediately.'
    exit 1
} else {
    Write-Host 'PATCHED — ASUS driver/software present but at or above fixed version.'
    exit 0
}