TLP:CLEARAnálisis defensivo de fuentes públicas. Parte de la serie Nightmare Eclipse.

Resumen ejecutivo#

UnDefend (CVE-2026-45498, CVSS 4.0) es la pieza que un lector apresurado ignoraría por su puntuación baja. Sería un error. No es una escalada ni una ejecución remota: es un denial-of-service contra el propio Microsoft Defender. Dispara una condición que deja a Defender sin funcionar —sin mostrar ninguna alerta al usuario ni al administrador—. El panel dice “todo en orden”; la protección, en la práctica, no está.

(Actualización, 7-jul-2026: la NVD reevaluó el CVE al alza — figura ahora como CVSS 7.5 (alto), tipo “consumo no controlado de recursos” (CWE-400), no el 4.0 con que varios vendors lo publicaron al inicio. El reajuste, curiosamente, refuerza el argumento de este post: incluso el puntaje “bajo” era engañoso. Además CISA le fijó plazo de parcheo del 3 de junio de 2026 al meterlo en el KEV, y la plataforma corregida es la 4.18.2604.7/4.18.26040.7. La lección no cambia: un DoS que apaga el EDR vale, dentro de una kill chain, más que su número — lo puntúen como lo puntúen.)

El CVSS mide el bug aislado; no mide su lugar en la cadena. UnDefend, por sí solo, “solo” tumba un antivirus. Pero colocado antes de BlueHammer/RedSun en la kill chain, invalida todas las detecciones basadas en firma de los pasos siguientes. Huntress lo vio exactamente así: primero escalar, luego cegar con UnDefend, luego tunelizar. Un 4.0 que habilita todo lo demás.

El problema de fondo: “protección activada” no es “protegido”#

La mayoría de los controles de seguridad reportan su propio estado, y casi todo el mundo confía en ese autorreporte. UnDefend explota justo esa confianza: rompe la capacidad operativa de Defender sin tocar el indicador de estado. Es la diferencia entre “el servicio está corriendo” y “el servicio está haciendo su trabajo” — dos cosas que asumimos idénticas y que un atacante puede desacoplar.

Para el lado azul, la conclusión es incómoda pero clara: el estado que Defender reporta de sí mismo no es una fuente de verdad confiable durante un incidente. Necesitas señales externas de que Defender dejó de funcionar (fallos de actualización, huecos en la telemetría, ausencia de eventos esperados), no solo su semáforo verde.

Hay una comodidad enorme en creerle al semáforo: verde significa que ya no hace falta mirar. Eso es un caché — una respuesta precomputada que se consulta en vez de volver a comprobar — y el problema del caché no es que mienta, es que nadie recuerda revalidarlo. UnDefend no ataca a Defender; ataca esa costumbre. Deja el indicador intacto y vacía lo que el indicador afirmaba. “El servicio corre” y “el servicio hace su trabajo” se sienten como la misma frase hasta el día en que alguien las separa por ti. La diferencia entre las dos es operativa, y un atacante paciente vive justo ahí.

Cómo se vio en la práctica (Huntress)#

En la intrusión documentada, UnDefend llegó como el binario undef.exe, ejecutado con flags que delatan su función:

%USERPROFILE%\Downloads\ks\undef.exe -h
%USERPROFILE%\Downloads\ks\undef.exe -agressive
%USERPROFILE%\Downloads\kk\undef.exe

El flag -agressive [sic] sugiere modos de operación; el -h, una ayuda de línea de comandos. Como siempre, el nombre del binario es cosmético —el atacante lo renombra en un segundo—. Lo que no puede ocultar tan fácil es el efecto: Defender deja de actualizar y deja de detectar.

Lo que el código real confirma (analizado en laboratorio)#

Analizado el PoC público en un entorno aislado —a nivel de qué observa un defensor—, el “cómo” es más concreto y deja un rastro observable que el número de CVSS no sugiere. UnDefend no toca el servicio ni pide privilegios: abusa de un mecanismo legítimo del sistema de ficheros —los bloqueos de rango de bytes— que Windows respeta de forma absoluta, incluso frente a SYSTEM.

  • Modo pasivo (por defecto): vigila el directorio Definition Updates de Defender con ReadDirectoryChangesW; en cuanto aparece un fichero de firma nuevo, lo abre y le aplica un bloqueo exclusivo (LockFileEx con LOCKFILE_EXCLUSIVE_LOCK). La actualización no puede completarse: Defender queda congelado en la última firma, y cualquier amenaza nueva que Microsoft empiece a detectar pasa igual.
  • Los blancos concretos: la ruta de firmas que lee del registro (HKLM\SOFTWARE\Microsoft\Windows Defender\Signature Updates) apunta a mpavbase.vdm; también bloquea los respaldos \Backup\mpavbase.lkg y \Backup\mpavbase.vdm (para que no pueda volver a una firma válida) y, en un hilo aparte, el directorio C:\Windows\System32\MRT (la Malicious Software Removal Tool). (Nota: es la familia mpavbase.*; BlueHammer suplanta otra distinta, mpasbase.*.)
  • Modo agresivo: registra una notificación de cambio de estado del servicio (NotifyServiceStatusChangeW, SERVICE_NOTIFY_STOPPED) sobre WinDefend. Cuando una actualización mayor de plataforma detiene el servicio, el callback vuelve a bloquear los ficheros del motor para que Defender no pueda reanudar —de ahí el “deja de responder”—.

Hay un detalle del README con peso defensivo: el autor afirma haber encontrado —y guardado sin publicar— una forma de falsear el estado en la consola del EDR, mostrando Defender sano cuando no lo está. No hay código para verificarlo y no lo publicamos, pero la sola posibilidad es el argumento de este post: si el semáforo se puede falsear, la única verdad confiable es la telemetría de segundo orden.

Ingeniería de detección#

La caza de UnDefend no busca un fichero: busca el hueco que deja. Se detecta por ausencia y por fallo, no por presencia.

1. Salud de Defender centralizada (la señal clave)#

No confíes en el semáforo local. Recoge el estado de Defender de forma centralizada y alerta sobre desviaciones: firmas que dejan de actualizarse, protección en tiempo real que cae, motor que no responde.

# Recolección de salud (para inventariar/alertar centralmente)
Get-MpComputerStatus | Select-Object `
    AMRunningMode, RealTimeProtectionEnabled, AntivirusEnabled, `
    AMServiceEnabled, AntivirusSignatureLastUpdated, `
    AMProductVersion, IsTamperProtected

Regla de negocio simple y potente: si AntivirusSignatureLastUpdated tiene más de 24-48 h en un host con red, es un incidente hasta que se demuestre lo contrario —especialmente si coincide con otros eventos anómalos—.

2. Eventos del canal operativo de Defender (Sigma)#

El canal Microsoft-Windows-Windows Defender/Operational emite eventos de fallo y de cambio de estado. Los relevantes para UnDefend son los de protección deshabilitada y fallo de actualización. (Valida los IDs contra tu propia telemetría; varían por versión.)

title: Defender inoperativo / fallo de actualización — posible UnDefend
id: ne-ud-001-defender-health-loss
status: experimental
description: >
  Protección en tiempo real deshabilitada o fallos repetidos de actualización
  de firmas en el canal operativo de Defender. Correlacionar con otros eventos:
  UnDefend (CVE-2026-45498) ciega Defender sin alertar.
references:
  - https://www.securityweek.com/microsoft-patches-exploited-undefend-and-redsun-defender-zero-days/
author: Serie Nightmare Eclipse — detección defensiva
date: 2026-07-03
tags:
  - attack.defense_evasion
  - attack.t1562.001
logsource:
  product: windows
  service: windefend
detection:
  disabled:
    EventID:
      - 5001   # Real-time protection deshabilitada
      - 5010   # Análisis antimalware deshabilitado
      - 5012   # Análisis antivirus deshabilitado
  update_fail:
    EventID:
      - 2001   # Fallo al actualizar definiciones
      - 2003   # Fallo al actualizar el motor
  condition: disabled or update_fail
falsepositives:
  - Mantenimiento planificado; conectividad de red deficiente. Correlacionar.
level: high

3. Equivalente KQL (Defender XDR / Sentinel)#

DeviceEvents
| where Timestamp > ago(24h)
| where ActionType in ("AntivirusDefinitionUpdateFailed",
                       "AntivirusRealTimeProtectionDisabled",
                       "AntivirusScanFailed")
| summarize Eventos = count(), Tipos = make_set(ActionType)
    by DeviceName, bin(Timestamp, 1h)
| where Eventos > 2
| order by Eventos desc

4. Comportamental — locks sobre los ficheros de actualización (en el acto)#

La detección por salud caza el efecto con horas de retraso; el código nos da además una señal en el momento. El mecanismo deja un artefacto poco ambiguo: un proceso de usuario estándar manteniendo un handle de larga duración con bloqueo exclusivo sobre ficheros dentro de los directorios de Defender. Fuera del propio MsMpEng.exe, casi nada abre esos ficheros, y menos aún los mantiene bloqueados. Rutas a vigilar:

%ProgramData%\Microsoft\Windows Defender\Definition Updates\**   (firmas nuevas)
%ProgramData%\Microsoft\Windows Defender\...\Backup\mpavbase.lkg  (respaldo)
%ProgramData%\Microsoft\Windows Defender\...\Backup\mpavbase.vdm  (respaldo)
C:\Windows\System32\MRT\**                                        (MRT)

Con EDR que exponga file handles, alerta sobre un proceso no-MsMpEng.exe con handle abierto sostenido sobre esas rutas. Señal complementaria de modo agresivo: registro de NotifyServiceStatusChange sobre el servicio WinDefend desde un proceso que no sea de gestión. Ambas son artefactos del cómo; la telemetría de salud (#1) sigue siendo la red de seguridad que no depende de ver el proceso.

Mitigación#

AcciónDetalle
Parche OOB 21-may-2026Plataforma Defender 4.18.26040.7 o superior
Tamper ProtectionDificulta —no elimina— la manipulación de Defender; actívalo y monitorízalo
Telemetría centralizada de salud AVNo depender del semáforo local; alertar por firmas obsoletas y RTP caída
Defensa en profundidadSi Defender es tu único control, cegarlo te deja a ciegas. EDR/segmentación/allowlisting reducen el impacto de un solo control caído
(Get-MpComputerStatus).AMProductVersion   # -> 4.18.26040.7 o superior
Regla mental que te llevas. Trata el estado autorreportado de cualquier control de seguridad como una hipótesis, no como un hecho. La verdad está en la telemetría de segundo orden: ¿sigue actualizando?, ¿sigue emitiendo los eventos que debería?, ¿hay huecos? UnDefend es la demostración de por qué “verde” no es “protegido”.

MITRE ATT&CK#

TácticaTécnica
Defense EvasionT1562.001 — Impair Defenses: Disable or Modify Tools (bloqueo de firmas y del motor)
Defense EvasionT1562.008 — Impair Defenses: Disable or Modify Cloud/host telemetry (efecto colateral)
ImpactT1489 — Service Stop (modo agresivo: impide que WinDefend reanude)

Referencias#