Back to Intelligence

Microsoft Defender Update-Blocking Flaw Disclosed by Nightmare Eclipse — Detection, Monitoring, and Hardening Guide

SA
Security Arsenal Team
September 22, 2026
12 min read

Over the weekend, security researcher Abdelhamid Naceri — known in the community as Nightmare Eclipse — publicly released details of another unpatched security issue in Microsoft Defender, this one capable of blocking antivirus updates on Windows endpoints. The disclosure, first reported by BleepingComputer, lands in an uncomfortable place for defenders: there is no vendor patch available at the time of publication, and the failure mode is exactly the kind that goes unnoticed until it matters — an endpoint that appears protected but is running on stale security intelligence.

Let me be direct about why this deserves your SOC's attention even without a CVE or an active exploitation campaign. The ability to prevent an antivirus engine from updating is a defense-evasion primitive (MITRE ATT&CK T1562.001 — Impair Defenses: Disable or Modify Tools). Whether the blocker is this specific flaw, a tamper script, or simple misconfiguration, the observable end state is identical: the endpoint stops receiving signature and platform updates, and every day that passes widens the detection gap. Ransomware operators and commodity loaders alike routinely attempt to blind endpoint protection before detonation. An unpatched, publicly documented path to freezing Defender's update channel lowers the bar for that.

This post breaks down what's known about the disclosure, then pivots to what actually matters: how to detect Defender update impairment, how to hunt for tampering at scale, and how to harden your fleet until Microsoft ships a fix.

Technical Analysis

What was disclosed

  • Affected product: Microsoft Defender Antivirus (the built-in antimalware platform on supported Windows client and server operating systems).
  • Disclosure type: Public release of an unpatched issue by an independent researcher, with no coordinated vendor fix available at publication time.
  • Impact: The flaw can be leveraged to block or sabotage Microsoft Defender's antivirus update mechanism, leaving the engine running but operating on outdated security intelligence definitions.
  • CVE / CVSS: None assigned as of this writing. No CVE identifier was published with the disclosure, and we will not speculate on one.

Naceri has a track record of publishing unpatched Windows issues publicly, and this release follows that pattern — technical details made available before a Microsoft remediation exists.

Why the failure mode is dangerous (defender's perspective)

The attack chain this enables is not exotic:

  1. Initial access / code execution — attacker gains execution on an endpoint through any standard vector (phishing, exposed service, supply chain).
  2. Defense impairment — rather than fighting Defender head-on (noisy, often blocked by Tamper Protection), the attacker abuses the update-blocking condition to freeze the antimalware update channel. The engine, services, and console all appear healthy.
  3. Signature decay — Microsoft ships security intelligence updates multiple times per day. Within days, the endpoint is missing detections for newly observed malware families, packers, and scripts.
  4. Payload execution — the attacker stages tooling that a current engine would have caught. Detection failure looks like absence, not like an alert.

The critical operational point: this class of failure produces no error in the Defender console and no obvious event on the endpoint. The only reliable telemetry is negative — signature age drifting, update jobs not completing, definitions not refreshing. Most SOCs do not alert on negative telemetry. That is the gap we need to close.

Exploitation status

  • Public disclosure: Yes — details released publicly by the researcher.
  • Vendor patch: Not available at time of writing.
  • Confirmed in-the-wild exploitation: None reported as of publication.
  • CISA KEV: Not listed (no CVE assigned).

Treat this as a proactive hardening and detection opportunity, not an emergency patch cycle — but do not treat it as ignorable. The technique it represents (impairing AV updates) is a standing attacker behavior, and your detections for it should exist regardless of this specific flaw.

Detection & Response

The detections below target the observable behaviors of Defender impairment: tamper-style configuration changes, service manipulation, and — most importantly — stale signatures. These are durable detections that will outlive this news cycle.

Sigma Rules

YAML
---
title: Microsoft Defender Tampering via PowerShell MpPreference Cmdlets
id: 3f8a1c42-7b6d-4e19-a2c5-9d1e4f6a8b01
status: experimental
description: Detects use of Set-MpPreference or Add-MpPreference to disable Defender protections, a common defense-evasion step consistent with attempts to impair or neutralize Defender, including blocking its ability to update or protect effectively.
references:
  - https://www.bleepingcomputer.com/news/security/new-windows-defender-zero-day-blocks-microsoft-antivirus-updates/
  - https://attack.mitre.org/techniques/T1562/001/
author: Security Arsenal
date: 2026/01/11
tags:
  - attack.defense_evasion
  - attack.t1562.001
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith:
      - '\powershell.exe'
      - '\powershell_ise.exe'
      - '\pwsh.exe'
  selection_cmd:
    CommandLine|contains:
      - 'Set-MpPreference'
      - 'Add-MpPreference'
  selection_args:
    CommandLine|contains:
      - 'DisableRealtimeMonitoring'
      - 'DisableBehaviorMonitoring'
      - 'DisableIOAVProtection'
      - 'DisableScriptScanning'
      - 'DisableBlockAtFirstSeen'
      - 'ExclusionPath'
      - 'ExclusionProcess'
  condition: selection_img and selection_cmd and selection_args
falsepositives:
  - Legitimate enterprise exclusions pushed by admins or management tooling (SCCM/Intune) — tune against known admin accounts and jump hosts
level: high
---
title: Microsoft Defender Service Stop or Disable Attempt
id: 8c2d5f71-3a9b-4e47-b1c6-5d8f2a9e3c04
status: experimental
description: Detects attempts to stop, disable, or reconfigure the Microsoft Defender Antivirus service (WinDefend) or related services. Modern builds resist these commands, but the attempt itself is a strong tamper signal.
references:
  - https://www.bleepingcomputer.com/news/security/new-windows-defender-zero-day-blocks-microsoft-antivirus-updates/
  - https://attack.mitre.org/techniques/T1562/001/
author: Security Arsenal
date: 2026/01/11
tags:
  - attack.defense_evasion
  - attack.t1562.001
logsource:
  category: process_creation
  product: windows
detection:
  selection_sc:
    Image|endswith:
      - '\sc.exe'
      - '\net.exe'
      - '\net1.exe'
    CommandLine|contains:
      - 'windefend'
      - 'WinDefend'
  selection_ps:
    Image|endswith:
      - '\powershell.exe'
      - '\pwsh.exe'
    CommandLine|contains:
      - 'Stop-Service'
      - 'Set-Service'
    CommandLine|contains|all:
      - 'WinDefend'
  condition: 1 of selection_*
falsepositives:
  - Rare; some imaging or hardening scripts touch Defender service state — validate against change windows
level: high
---
title: Registry Modification of Microsoft Defender Policy Disable Values
id: a41e9c63-2f7b-4d85-9c1a-6e3b7f4d2a09
status: experimental
description: Detects registry writes to Defender policy keys used to disable the antimalware engine or spyware protection. Frequently used by malware and post-exploitation tooling to blind Defender prior to payload execution.
references:
  - https://www.bleepingcomputer.com/news/security/new-windows-defender-zero-day-blocks-microsoft-antivirus-updates/
  - https://attack.mitre.org/techniques/T1562/001/
  - https://attack.mitre.org/techniques/T1112/
author: Security Arsenal
date: 2026/01/11
tags:
  - attack.defense_evasion
  - attack.t1562.001
  - attack.t1112
logsource:
  category: registry_set
  product: windows
detection:
  selection:
    TargetObject|contains:
      - '\SOFTWARE\Microsoft\Windows Defender\'
      - '\SOFTWARE\Policies\Microsoft\Windows Defender\'
    Details|contains:
      - 'DisableAntiSpyware'
      - 'DisableAntiVirus'
      - 'DisableRealtimeMonitoring'
      - 'DisableRoutinelyTakingAction'
  condition: selection
falsepositives:
  - Group Policy processing and sanctioned migration to third-party AV — restrict alerting to non-SYSTEM, non-GPP writers where possible
level: high

KQL — Microsoft Sentinel / Defender XDR Hunting

Two queries: one hunts the tamper behaviors, the other hunts the outcome — endpoints drifting on stale signatures, which is what an update-blocking condition actually produces.

KQL — Microsoft Sentinel / Defender
// Query 1: Hunt for Defender tamper / impairment command execution across the fleet
let lookback = 7d;
DeviceProcessEvents
| where TimeGenerated > ago(lookback)
| where ProcessCommandLine has_any (
    "DisableRealtimeMonitoring",
    "DisableAntiSpyware",
    "DisableBehaviorMonitoring",
    "Set-MpPreference",
    "Add-MpPreference",
    "windefend"
  )
  or (FileName in~ ("sc.exe", "net.exe", "net1.exe") and ProcessCommandLine has "windefend")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, ReportId
| order by TimeGenerated desc;

// Query 2: Surface endpoints with stale Defender security intelligence (the observable
// end-state of an update-blocking condition). Threshold: signatures older than 3 days
// warrant investigation; older than 7 days on an internet-connected host is an incident.
let stale_threshold = 3d;
DeviceTvmSecureConfigurationAssessment
| where ConfigurationName has "signature" or ConfigurationName has "intelligence"
| summarize arg_max(TimeGenerated, *) by DeviceId, ConfigurationId
| where IsCompliant == 0
| join kind=inner (DeviceInfo | summarize arg_max(Timestamp, *) by DeviceId | project DeviceId, DeviceName, OSPlatform, OnboardingStatus) on DeviceId
| project DeviceName, OSPlatform, ConfigurationName, IsApplicable, IsCompliant, OnboardingStatus
| order by DeviceName asc;

Note on Query 2: secure-configuration assessment naming varies slightly by tenant and Defender version — validate the ConfigurationName filter against your own DeviceTvmSecureConfigurationAssessment schema and adjust. If you run Defender for Endpoint with the management log flowing to Sentinel, also consider alerting on SecurityEvent-based update failure telemetry from the Microsoft-Windows-Windows Defender/Operational channel where ingestion is configured.

Velociraptor VQL — Endpoint State Hunt

This artifact checks the two things that matter per host: is the Defender engine process actually running, and how old are the on-disk definition updates? Run it across your fleet; a host with no MsMpEng.exe in pslist() or with definition artifacts older than your freshness threshold is a finding.

VQL — Velociraptor
-- Hunt: Microsoft Defender impairment — engine running state and signature freshness
-- Interpretation per host:
--   * Empty engine result set  = MsMpEng.exe not running (tamper, disable, or update-block)
--   * Mtime older than 72h     = definitions not updating (investigate update channel)

LET engine = SELECT Pid, Name, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)MsMpEng|NisSrv|SecurityHealthService'

LET defs = SELECT FullPath, Mtime, Size
FROM glob(globs='C:/ProgramData/Microsoft/Windows Defender/Definition Updates/*/*')
ORDER BY Mtime DESC
LIMIT 10

LET policy = SELECT Data, Name
FROM read_reg_key(globs='HKLM/SOFTWARE/Policies/Microsoft/Windows Defender/DisableAntiSpyware',
                  accessor='registry')

SELECT * FROM engine

Deploy the defs and policy components as additional queries in the same artifact (Velociraptor notebooks support multiple SELECT statements per artifact, or split into three sources). The registry read catches policy-based disablement even when the process state looks normal — which is precisely the quiet failure mode this disclosure represents.

Remediation / Verification Script

Use this as a fleet-wide verification and recovery script — via Intune proactive remediations, SCCM, or your RMM. It validates tamper posture, attempts to recover the update channel, forces a signature refresh, and exits non-zero when manual intervention is needed.

PowerShell
#requires -RunAsAdministrator
# Security Arsenal - Defender impairment verification and recovery
# Run fleet-wide; exit code 1 = host requires analyst attention

$exit = 0

# 1. Capture current Defender posture
$status = Get-MpComputerStatus
Write-Host "[i] Engine version:            $($status.AMEngineVersion)"
Write-Host "[i] Signature version:         $($status.AntivirusSignatureVersion)"
Write-Host "[i] Signature age (days):      $($status.AntivirusSignatureAge)"
Write-Host "[i] Real-time protection:      $($status.RealTimeProtectionEnabled)"
Write-Host "[i] Tamper Protection:         $($status.IsTamperProtected)"
Write-Host "[i] Antivirus enabled:         $($status.AntivirusEnabled)"

# 2. Flag the observable end-state of an update-blocking condition
if ($status.AntivirusSignatureAge -ge 3) {
    Write-Host "[!] STALE SIGNATURES: definitions are $($status.AntivirusSignatureAge) days old - investigate update channel impairment"
    $exit = 1
}

if ($status.RealTimeProtectionEnabled -eq $false) {
    Write-Host "[!] Real-time protection is DISABLED"
    $exit = 1
}

if ($status.IsTamperProtected -eq $false) {
    Write-Host "[!] Tamper Protection is OFF - enable via Microsoft Defender for Endpoint / Intune"
    $exit = 1
}

# 3. Verify the Defender service is healthy; attempt recovery if not
$svc = Get-Service -Name WinDefend -ErrorAction SilentlyContinue
if ($svc.Status -ne 'Running') {
    Write-Host "[!] WinDefend service state: $($svc.Status) - attempting start"
    try {
        Start-Service WinDefend -ErrorAction Stop
        Write-Host "[+] WinDefend service recovered"
    } catch {
        Write-Host "[!] Failed to start WinDefend: $_"
        $exit = 1
    }
}

# 4. Force a security intelligence update and re-measure
try {
    Update-MpSignature -ErrorAction Stop
    Write-Host "[+] Signature update triggered via Update-MpSignature"
} catch {
    Write-Host "[!] Update-MpSignature failed, falling back to MpCmdRun: $_"
    & "$env:ProgramFiles\Windows Defender\MpCmdRun.exe" -SignatureUpdate
    $exit = 1
}

Start-Sleep -Seconds 20
$after = Get-MpComputerStatus
if ($after.AntivirusSignatureAge -ge 3) {
    Write-Host "[!] Signatures REMAIN stale after forced update - treat as suspected impairment; isolate and investigate"
    $exit = 1
}

exit $exit

Remediation

There is no Microsoft patch available for this issue at the time of publication, and no CVE has been assigned. Remediation is therefore about hardening, monitoring, and rapid validation:

  1. Enforce Tamper Protection everywhere. Tamper Protection (managed via Microsoft Defender for Endpoint, Intune, or Configuration Manager tenant attach) blocks the most common local paths to disabling or degrading Defender, including registry and cmdlet-based tampering. It will not stop a dedicated update-blocking flaw, but it collapses the attacker's adjacent options and makes impairment attempts far noisier.

  2. Alert on signature age — the negative telemetry. This is the single highest-value action from this disclosure. Establish a fleet-wide control: any internet-connected endpoint whose AntivirusSignatureAge exceeds 72 hours pages an analyst. An update-blocking condition is invisible to the console; it is glaringly visible in signature age if you bother to look.

  3. Deploy the detections above. The Sigma rules and KQL queries target T1562.001 behaviors that are durable beyond this flaw — tamper cmdlets, service manipulation, and policy-based disablement are standard ransomware precursor behavior.

  4. Reduce local admin and constrain scripting. The precondition for abusing any local Defender impairment is code execution with sufficient privilege. Least-privilege enforcement, plus WDAC/AppLocker or Constrained Language Mode where feasible, raises the cost of tampering substantially.

  5. Layer your detection. An endpoint on stale Defender signatures should not mean an unmonitored endpoint. Ensure EDR telemetry (Defender for Endpoint's sensor operates independently of the AV signature channel), network detection, and identity analytics give you overlapping coverage while signatures are degraded.

  6. Track the vendor response. Monitor the Microsoft Security Update Guide for a fix and the original disclosure coverage for updated technical detail. Apply the patch fleet-wide as soon as Microsoft releases one, and treat the interim period as heightened-monitoring for defense-evasion behavior on Windows endpoints.

The Bottom Line

This disclosure is a reminder of a principle I drill into every SOC I advise: your most dangerous failures are the silent ones. An endpoint that stops updating its antivirus doesn't scream — it just quietly falls behind, one signature release at a time, until it misses the one that mattered. You don't need to wait for a CVE, a KEV listing, or a patch to act. Build the negative-telemetry detections, enforce Tamper Protection, and verify your update channel continuously. The organizations that get hurt by flaws like this are the ones that assumed silence meant health.

Related Resources

Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.