Dell BIOS driver privilege flaws have been recently uncovered. They affect many different models of Dell on Windows 7 through Windows 10. More detail here:
This worklet will band-aid the issue by removing the dbutil_2_3.sys file until you can update any affected Dell systems to the latest firmware as detailed here (minimum firmware version for each model recommended is at the bottom of the page):
https://www.dell.com/support/kbdoc/en-us/000186019/dsa-2021-088-dell-client-platform-security-update-for-dell-driver-insufficient-access-control-vulnerability
It appears that reintroduction of the dbutil_2_3.sys to affected systems is a possibility, so you’ll probably want to schedule this daily until you can get the firmware on the affected systems up to at least the versions recommended by Dell.
Evaluation:
# CVE-2021-21551 v2
# 05-07-2021
# File to check for existance
$dbsys = "dbutil_2_3.sys"
# Query WMI and get a list of all user profile locations
$profiles = (Get-WmiObject win32_userprofile).LocalPath
$userProfiles = $profiles | Where-Object { $_.Substring(0,8) -EQ "C:\Users" }
# Build a list of all possible locations
$fileList = @()
foreach ($profile in $userProfiles) {
$fileList += "$profile\AppData\Local\Temp\$dbsys"
}
$fileList += "$env:SystemRoot\Temp\$dbsys"
# Check each location for potential file
$fileFound = $false
foreach ($file in $fileList) {
if (Test-Path -PathType Leaf $file) {
$fileFound = $true
}
}
if ($fileFound -eq $true) { Exit 1 } else { Exit 0 }
Remediation:
# File to check for existance
$dbsys = "dbutil_2_3.sys"
# Query WMI and get a list of all user profile locations
$profiles = (Get-WmiObject win32_userprofile).LocalPath
$userProfiles = $profiles | Where-Object { $_.Substring(0,8) -EQ "C:\Users" }
# Build a list of all possible locations
$fileList = @()
foreach ($profile in $profiles) {
$fileList += "$profile\AppData\Local\Temp\$dbsys"
}
$fileList += "$env:SystemRoot\Temp\$dbsys"
# Check each location and delete the file if found
foreach ($file in $fileList) {
if (Test-Path -PathType Leaf $file) {
Remove-Item $file -Force
Start-Sleep 1 # Wait a second to make sure the OS has had a chance to remove the file.
if (Test-Path -PathType Leaf $file) {
Write-Output "WARNING: Unable to remove $file "
}
else {
Write-Output "Successfully removed $file "
}
}
}