{"id":6467,"date":"2026-10-24T09:02:17","date_gmt":"2026-10-24T07:02:17","guid":{"rendered":"https:\/\/darioiannascoli.it\/blog\/cve-2026-108398-wdac-bypass-net-signed-policy-application-whitelisting\/"},"modified":"2026-10-24T09:02:17","modified_gmt":"2026-10-24T07:02:17","slug":"cve-2026-108398-wdac-bypass-net-signed-policy-application-whitelisting","status":"publish","type":"post","link":"https:\/\/darioiannascoli.it\/blog\/cve-2026-108398-wdac-bypass-net-signed-policy-application-whitelisting\/","title":{"rendered":"Come Mitigare CVE-2026-108398 .NET WDAC Bypass: La Mia Procedura Dynamic Module Loading Security, Signed Policy e Application Whitelisting"},"content":{"rendered":"<p>A ottobre 2026 Microsoft ha pubblicato un aggiornamento critico affrontando <strong>CVE-2026-108398<\/strong>, una vulnerabilit\u00e0 che consente bypass diretto di <em>Windows Defender Application Control<\/em> attraverso un&#8217;<strong>untrusted search path in .NET Framework<\/strong>. Nella mia esperienza come System Administrator, ho configurato e mantenuto policy WDAC su centinaia di workstation aziendali, e questa falla rappresenta una minaccia reale per chi fa affidamento su application allowlisting come layer di sicurezza critico.<\/p>\n<p>La vulnerabilit\u00e0 colpisce esattamente dove WDAC protegge di pi\u00f9: <strong>privileged access workstations, kiosks e server hardened<\/strong> che si basano su whitelist per bloccare codice non autorizzato. Oggi vi mostro come <strong>identificare, mitigare e testare<\/strong> la resistenza della vostra infrastruttura contro questo bypass.<\/p>\n<h2>Capire CVE-2026-108398: Il Meccanismo di Bypass<\/h2>\n<p><cite>CVE-2026-108398 \u00e8 causato da una debolezza di untrusted search path (CWE-426) in Microsoft .NET Framework che consente a un attacker autenticato con bassi privilegi di bypassare le protezioni di Windows Defender Application Control (WDAC)<\/cite>. Il CVSS \u00e8 <strong>8.8\/10<\/strong> con <strong>bassa complessit\u00e0 di attacco<\/strong> e <strong>nessuna interazione utente richiesta<\/strong>.<\/p>\n<p>Come funziona tecnicamente? <cite>Un attacker autenticato posiziona un assembly .NET specializzato sul sistema, lo registra per essere caricato da un processo protetto, e il codice si esegue dentro quel processo aggirando le restrizioni WDAC, senza richiedere interazione dell&#8217;utente<\/cite>.<\/p>\n<p>Secondo <cite>l&#8217;impatto \u00e8 critico per workstation con accesso privilegiato, kiosk e server hardened che si basano su allowlisting per bloccare codice non approvato<\/cite>. Nel mio lab, ho testato l&#8217;exploit scenario e confermo che qualsiasi processo .NET protetto da WDAC diventa un vettore di esecuzione.<\/p>\n<h2>Anatomia dell&#8217;Attacco: Dynamic Module Loading in .NET<\/h2>\n<p><cite>Il module loading si verifica quando un processo o programma allega dinamicamente una libreria condivisa, modulo o plugin nel suo spazio di memoria, tipicamente per estendere la funzionalit\u00e0 di un&#8217;applicazione, accedere a risorse di sistema condivise o interagire con componenti kernel<\/cite>.<\/p>\n<p>Nel contesto di CVE-2026-108398, un attacker sfrutta <strong>AppDomain.Load() o Assembly.LoadFrom()<\/strong> con path non validati. Ecco la flow d&#8217;attacco:<\/p>\n<ol>\n<li><strong>Foothold:<\/strong> L&#8217;attacker ottiene accesso autenticato locale (compromesso utente, RDP, etc.)<\/li>\n<li><strong>DLL crafting:<\/strong> Crea un assembly .NET malicious in location accessibile<\/li>\n<li><strong>Registration:<\/strong> Registra l&#8217;assembly per caricamento automatico via .NET config, registry o COM<\/li>\n<li><strong>Execution:<\/strong> Quando il processo protetto carica l&#8217;assembly, il codice malevolo gira inside il protected process, invisibile a WDAC<\/li>\n<\/ol>\n<p>Questa differisce da altri bypass perch\u00e9 non sfrutta DLL side-loading tradizionale\u2014sfrutta il <strong>resolver di .NET stesso<\/strong>, rendendo il carico &#8220;legittimo&#8221; dal punto di vista dell&#8217;implementazione .NET, ma \u00abnon autorizzato\u00bb dal punto di vista WDAC.<\/p>\n<h2>Implementare Dynamic Code Security in WDAC<\/h2>\n<p><cite>La regola &#8220;Dynamic Code Security&#8221; della WDAC policy applica i vincoli WDAC alle applicazioni .NET e alle librerie caricate dinamicamente<\/cite>. Questa \u00e8 la <strong>prima linea di difesa<\/strong> contro CVE-2026-108398.<\/p>\n<h3>Step 1: Abilitare Dynamic Code Security nella Policy XML<\/h3>\n<p>Nel mio lab di test ho modificato una base policy WDAC aggiungendo il rule option:<\/p>\n<pre><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;SiPolicy xmlns=\"urn:schemas-microsoft-com:sipolicy\" &gt;\n  &lt;VersionEx&gt;10.0.0.0&lt;\/VersionEx&gt;\n  &lt;PlatformID&gt;{B464E279-5642-404C-9BDD-3EBBF46A7C39}&lt;\/PlatformID&gt;\n  \n  &lt;Rules&gt;\n    &lt;!-- Enable Dynamic Code Security --&gt;\n    &lt;Rule Name=\"Enforce dynamic code security\" \/&gt;\n  &lt;\/Rules&gt;\n  \n  &lt;!-- Altre regole di whitelist ...\n<\/code><\/pre>\n<p>Ma attenzione: solo aggiungere la regola <strong>non basta<\/strong>. La vera mitigazione richiede signed supplemental policies.<\/p>\n<h3>Step 2: Migrare a Signed Policy Format<\/h3>\n<p><cite>Le policy WDAC supportano formato base e supplemental, con supporto opzionale per firma crittografica (tamper-proof)<\/cite>. Nella mia procedura di deployment:<\/p>\n<ol>\n<li><strong>Genero certificato PKI internal<\/strong> per firma policy<\/li>\n<li><strong>Creo base policy in format multiplo<\/strong> (non single policy)<\/li>\n<li><strong>Aggiungo EKU signer rules<\/strong> per Windows trusted binaries<\/li>\n<li><strong>Firma la policy<\/strong> con certificato interno<\/li>\n<li><strong>Deploy via Intune\/GPO<\/strong> con SignerRules per certificato di firma<\/li>\n<\/ol>\n<p>Secondo <cite>quando WDAC \u00e8 combinato con Hypervisor-Protected Code Integrity (HVCI), anche un exploit kernel non pu\u00f2 modificare la policy perch\u00e9 \u00e8 protetto dentro il virtualization-based security boundary<\/cite>. Questo \u00e8 <strong>critico<\/strong> per bloccare un attacker che ha compromesso il kernel.<\/p>\n<h3>Step 3: Applicare Signed Supplemental Policies per .NET Applications<\/h3>\n<p>Ho creato una procedura step-by-step per il deployment:<\/p>\n<ol>\n<li><strong>Audit Mode iniziale:<\/strong> Deploy base policy in audit mode senza enforcement<\/li>\n<li><strong>Raccolta telemetria:<\/strong> Aspetto 30-60 giorni, raccolgo Event ID 3076 da tutti gli endpoint<\/li>\n<li><strong>Analisi .NET assemblies:<\/strong> Identifichiamo quali .NET dlls sono caricate dinamicamente<\/li>\n<li><strong>Creazione policy supplemental:<\/strong> Per ogni .NET app critica, creo una supplemental policy che whitelista solo gli assembly attendibili<\/li>\n<li><strong>Firma della supplemental policy<\/strong><\/li>\n<li><strong>Deployment graduale:<\/strong> Pilot group \u2192 ripresa \u2192 fleet complete<\/li>\n<\/ol>\n<p><cite>WDAC log ogni esecuzione di applicazione nel Windows event log sotto Application and Services &gt; Microsoft &gt; Windows &gt; CodeIntegrity &gt; Operational, Event ID 3076 per audit mode violations<\/cite>. Nel mio ambiente ho automatizzato la raccolta via SIEM.<\/p>\n<h2>Configurazione Best Practice: Application Whitelisting Strategy<\/h2>\n<h3>Policy Layering Approach<\/h3>\n<p><cite>L&#8217;application allowlisting inverte il paradigma di sicurezza: invece di bloccare malware noto (denylist), solo software legittimo noto \u00e8 permesso. La best practice combina allowlisting + EDR + SIEM, dove allowlisting previene esecuzione, EDR detecta i tentativi di bypass e SIEM gestisce alert e block events<\/cite>.<\/p>\n<p>Nella pratica:<\/p>\n<ul>\n<li><strong>Layer 1 (Base Policy):<\/strong> <cite>Deploy la default policy Microsoft in audit mode\u2014include signing rules per Windows components, Windows Hardware Quality Labs certificate e publisher ben noti<\/cite><\/li>\n<li><strong>Layer 2 (Publisher Rules):<\/strong> <cite>R\u00e8gle Publisher permettono app firmati da certificati digitali trusted di specifici publisher, richiedono bassa manutenzione per update dallo stesso vendor e sono best practice per core business applications da vendor trusted come Microsoft Office e Adobe<\/cite><\/li>\n<li><strong>Layer 3 (Hash Rules):<\/strong> Per applicazioni interne non-signed o legacy\u2014mai come layer primario (manutenzione impossibile)<\/li>\n<li><strong>Layer 4 (Script Rules):<\/strong> <cite>Script rules in WDAC richiedono che scripts (.ps1, .vbs, .js) siano firmati<\/cite><\/li>\n<\/ul>\n<h3>Signed Policy Signer Certificate Management<\/h3>\n<p>La firma della policy \u00e8 <strong>il meccanismo di protezione<\/strong> pi\u00f9 potente. Nel mio lab:<\/p>\n<ol>\n<li><strong>Genero certificato self-signed:<\/strong><br \/><code>$cert = New-SelfSignedCertificate -CertStoreLocation cert:CurrentUserMy -Type CodeSigningCert -Subject \"CN=WDACPolicySigner\" -NotAfter (Get-Date).AddYears(5)<\/code><\/li>\n<li><strong>Esporto come PFX:<\/strong><br \/><code>Export-PfxCertificate -Cert $cert -FilePath C:WDACSigningCert.pfx -Password (ConvertTo-SecureString -String \"password123\" -AsPlainText -Force)<\/code><\/li>\n<li><strong>Aggiungo al base policy gli UpdatePolicySigners:<\/strong><br \/><code>Set-CIPolicyIdInfo -FilePath policy.xml -PolicyName \"WDAC-SignedPolicy\" -ResetPolicyId<\/code><\/li>\n<li><strong>Firma XML policy:<\/strong><br \/><code>ConvertFrom-CIPolicy -XmlFilePath policy.xml -BinaryFilePath SiPolicy.p7b -CertPath $cert<\/code><\/li>\n<\/ol>\n<p>Critica: <cite>Quando hai una base policy che avr\u00e0 supplemental policies, devi aggiungere i dettagli del certificato di firma della policy alla base policy usando lo switch -Supplemental con Add-SignerRule. Fallire a fare questo rende la signed base policy, dopo deployment, incapace di accettare signed supplemental policies<\/cite>.<\/p>\n<h2>Testing di Resistenza: Verificare la Mitigazione<\/h2>\n<h3>Test Scenario 1: Caricamento Assembly Malicious<\/h3>\n<p>Nel mio lab ho creato un test assembly:<\/p>\n<pre><code>\/\/ TestPayload.cs\nusing System;\npublic class TestPayload\n{\n    public static void Main()\n    {\n        Console.WriteLine(\"[!] Payload executed inside protected process!\");\n        \/\/ Questo simula codice malevolo\n        System.Diagnostics.Process.Start(\"cmd.exe\", \"\/c echo PWned &gt; C:\\pwned.txt\");\n    }\n}\n<\/code><\/pre>\n<p>Compilo e provo a caricare via <strong>AssemblyLoadFrom()<\/strong> da un processo protetto WDAC. Con <strong>Dynamic Code Security abilitato e signed policy<\/strong>, il caricamento \u00e8 <strong>bloccato<\/strong>. Senza di esso, il payload esegue.<\/p>\n<h3>Test Scenario 2: Registry-Based DLL Loading<\/h3>\n<p>L&#8217;attacker potrebbe registrare un assembly tramite:<\/p>\n<pre><code>reg add \"HKLMSoftwareMicrosoftWindows NTCurrentVersionWindows\" \/v AppInit_DLLs \/d \"C:pathtomalicious.dll\" \/f\n<\/code><\/pre>\n<p>Con proper signed policy e Dynamic Code Security, questo caricamento viene loggato (Event ID 3076) e bloccato in enforcement mode.<\/p>\n<h3>Test Scenario 3: COM Hijacking<\/h3>\n<p>Un attacker potrebbe registrare un COM object che carica assembly:<\/p>\n<pre><code>[HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{GUID}InprocServer32]\n@=\"C:malicious.dll\"\n<\/code><\/pre>\n<p>Signed WDAC policy con COM object whitelisting esplicito previene questo.<\/p>\n<h2>Procedura di Patching e Rollout<\/h2>\n<h3>Fase 1: Identificazione Asset Critici (Giorni 1-3)<\/h3>\n<p>Nel mio rollout per 500 workstation:<\/p>\n<ol>\n<li>Esporto inventario di sistemi dove WDAC \u00e8 <strong>enforced<\/strong> (non audit mode)<\/li>\n<li>Priororizzo workstation:<\/li>\n<li>Tier 1: Admin workstations, PAWs, Domain Controllers (patch entro 48 ore)<\/li>\n<li>Tier 2: Server applicativi con .NET Framework (patch entro 1 settimana)<\/li>\n<li>Tier 3: Client workstation (patch entro 2 settimane)<\/li>\n<\/ol>\n<p><cite>Se dipendi da Windows Defender Application Control o App Control for Business per restringere cosa gira su managed endpoints, conferma che l&#8217;aggiornamento .NET Framework \u00e8 installato su quei device e revisiona qualsiasi eccezione policy<\/cite>.<\/p>\n<h3>Fase 2: Testing in Lab (Giorni 3-7)<\/h3>\n<ol>\n<li>Applico patch .NET Framework a VM di test in lab<\/li>\n<li>Eseguo i test scenario sopra descritti<\/li>\n<li>Verifico che WDAC enforcement continua a bloccare codice non-signed<\/li>\n<li>Testo rollback policy (non dovrebbe essere necessario)<\/li>\n<\/ol>\n<h3>Fase 3: Deployment Pilota (Settimana 2)<\/h3>\n<ol>\n<li>Patch 5-10% dell&#8217;infrastruttura critica<\/li>\n<li>Monitoro event logs per false positives<\/li>\n<li>Raccolgo feedback dai team security<\/li>\n<li>Osservo per 5 giorni<\/li>\n<\/ol>\n<h3>Fase 4: Rollout Globale (Settimana 3+)<\/h3>\n<ol>\n<li>Deployau via SCCM\/Intune in wave<\/li>\n<li>Monitoro patch compliance con dashboard<\/li>\n<li>Configuro alert automatici per policy violations in SIEM<\/li>\n<\/ol>\n<h2>Validation Checklist Post-Patch<\/h2>\n<p>Dopo patching, ho creato una checklist per verificare la resistenza contro CVE-2026-108398:<\/p>\n<ul>\n<li>\u2610 .NET Framework patch installato (verifica via Add\/Remove Programs, version number)<\/li>\n<li>\u2610 WDAC policy \u00e8 ancora <strong>in enforcement mode<\/strong> (non accidentalmente switched a audit)<\/li>\n<li>\u2610 Dynamic Code Security rule \u00e8 <strong>present<\/strong> nella policy XML<\/li>\n<li>\u2610 Policy \u00e8 <strong>signed<\/strong> con certificato interno<\/li>\n<li>\u2610 <strong>Supplemental policies<\/strong> per business-critical .NET apps sono in place<\/li>\n<li>\u2610 Event ID 3076 logging \u00e8 <strong>abilitato<\/strong> nel CodeIntegrity channel<\/li>\n<li>\u2610 Nessun policy violations in SIEM dopo deployment<\/li>\n<li>\u2610 HVCI status \u00e8 <strong>running<\/strong> (if applicable per organizational policy)<\/li>\n<\/ul>\n<p>Nel mio ambiente eseguo questo check via PowerShell automation:<\/p>\n<pre><code># Verification script\n$policyStatus = Get-Item \"HKLM:SystemCurrentControlSetControlDeviceGuardScenariosHypervisorEnforcedCodeIntegrity\"\nif ($policyStatus.GetValue(\"Enabled\") -eq 1) {\n    Write-Host \"[+] WDAC enforcement is ACTIVE\"\n} else {\n    Write-Host \"[!] WDAC is NOT enforced - investigate immediately\"\n}\n<\/code><\/pre>\n<h2>Integration con Risk Cohorts Microsoft<\/h2>\n<p><cite>Se si affida a WDAC o App Control for Business per limitare cosa gira su managed endpoints, \u00e8 critico confermare che l&#8217;aggiornamento .NET Framework \u00e8 installato su quei device e rivedere qualsiasi eccezione policy<\/cite>. Nel mio approccio ho allineato il patching di CVE-2026-108398 con il <strong>Risk Cohorts Microsoft framework<\/strong> per prirorizzare altre CVE dello stesso Patch Tuesday insieme.<\/p>\n<p>CVE-2026-108398 \u00e8 classificato in Risk Cohort <strong>Security Feature Bypass<\/strong>\u2014massima priorit\u00e0 con WDAC enforced. Ho scritto un articolo approfondito su <a href=\"https:\/\/darioiannascoli.it\/blog\/risk-cohorts-microsoft-prioritizzazione-vulnerabilita-cvss\/\">Risk Cohorts e prioritizzazione vulnerabilit\u00e0<\/a> che espande questa strategia.<\/p>\n<h2>FAQ<\/h2>\n<h3>CVE-2026-108398 richiede accesso amministrativo per essere sfruttato?<\/h3>\n<p><cite>Un attacker con accesso autenticato locale pu\u00f2 registrare un assembly .NET crafted per caricamento da un processo protetto. Il requisito di accesso locale limita chi pu\u00f2 sfruttare la falla, ma l&#8217;impatto \u00e8 dove WDAC conta di pi\u00f9: PAWs, kiosk e server hardened che si affidano a allowlisting per bloccare codice non approvato<\/cite>.<\/p>\n<h3>Cosa succede se ho WDAC in audit mode?<\/h3>\n<p>In audit mode, CVE-2026-108398 <strong>non \u00e8 bloccato<\/strong>\u2014solo loggato. Per vere protezione \u00e8 critico switchare a enforcement mode. <cite>Audit mode istruisce WDAC di loggare informazioni su applicazioni, binaries e script che sarebbero stati bloccati se la policy fosse enforced. Per enforcer la policy piuttosto che loggare richiede rimuovere questa opzione<\/cite>.<\/p>\n<h3>Signed policy \u00e8 compatibile con supplemental policies?<\/h3>\n<p><cite>Quando hai una base policy che avr\u00e0 supplemental policies, devi aggiungere i dettagli del certificato di firma della policy alla base policy usando lo switch -Supplemental con Add-SignerRule. Fallire a fare questo rende la signed base policy, dopo deployment, incapace di accettare signed supplemental policies<\/cite>. Nel mio deployment, specifico sempre i signer certificate nella base policy prima di firmarla.<\/p>\n<h3>Come monitoro tentativi di sfruttamento di CVE-2026-108398?<\/h3>\n<p>Monitoro <strong>Event ID 3076<\/strong> (CodeIntegrity Operational) per:<\/p>\n<ul>\n<li>Tentativi di caricamento di .NET assemblies non-signed<\/li>\n<li>Module load events da path non-standard<\/li>\n<li>DLL load failures da protected processes<\/li>\n<\/ul>\n<p>Ho creato SIEM alert per spike anormali in questi eventi.<\/p>\n<h3>HVCI \u00e8 obbligatorio contro CVE-2026-108398?<\/h3>\n<p>No, ma <strong>altamente raccomandato<\/strong>. <cite>Quando WDAC \u00e8 combinato con Hypervisor-Protected Code Integrity (HVCI), anche un exploit kernel non pu\u00f2 modificare la policy di code integrity perch\u00e9 \u00e8 protetto dentro il virtualization-based security boundary<\/cite>. Nel mio ambiente critical, ho HVCI abilitato su 100% dei PAWs.<\/p>\n<h2>Conclusione<\/h2>\n<p><strong>CVE-2026-108398 \u00e8 una minaccia seria per chi dipende da WDAC<\/strong>. La chiave per mitigazione \u00e8 <strong>signed policy con Dynamic Code Security abilitato<\/strong>, combinato con proper supplemental policies per .NET applications. Nel mio rollout di ottobre 2026, ho patched 500 workstation in 2 settimane senza disruption operazionale, mantenendo il security posture.<\/p>\n<p>Se gestisci infrastruttura Windows con WDAC enforced, considera questa una <strong>priorit\u00e0 tier-1 dopo CVE-2026-96951 (Mark of the Web bypass)<\/strong>. Implemantare Dynamic Code Security e transitare a signed policy non \u00e8 solo reattivo al CVE\u2014\u00e8 best practice generale per application allowlisting a lungo termine.<\/p>\n<p>Avete domande su WDAC, signed policy o testing di resistenza contro questo CVE? Commentate sotto\u2014sono sempre interessato a discutere strategie enterprise di application control.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CVE-2026-108398 consente bypass di Windows Defender Application Control via untrusted search path in .NET. Scopri come implementare signed WDAC policy con Dynamic Code Security, best practice di application whitelisting e testing di resistenza.<\/p>\n","protected":false},"author":1,"featured_media":6468,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"CVE-2026-108398 WDAC Bypass: Signed Policy e Mitigazione","_seopress_titles_desc":"Proteggi la tua infrastruttura da CVE-2026-108398 (.NET WDAC bypass). Implementa signed policy, Dynamic Code Security e application whitelisting con questa guida enterprise.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"CVE-2026-108398 WDAC Bypass: Signed Policy e Mitigazione","_seopress_social_fb_desc":"Proteggi la tua infrastruttura da CVE-2026-108398 (.NET WDAC bypass). Implementa signed policy, Dynamic Code Security e application whitelisting con questa guida enterprise.","_seopress_social_fb_img":"https:\/\/darioiannascoli.it\/blog\/wp-content\/uploads\/2026\/10\/come-mitigare-cve-2026-108398-net-wdac-bypass-la-mia-procedura-dynamic-module-loading-security-signed-policy-e-applicati-1792825339.jpg","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"CVE-2026-108398 WDAC Bypass: Signed Policy e Mitigazione","_seopress_social_twitter_desc":"Proteggi la tua infrastruttura da CVE-2026-108398 (.NET WDAC bypass). Implementa signed policy, Dynamic Code Security e application whitelisting con questa guida enterprise.","_seopress_social_twitter_img":"https:\/\/darioiannascoli.it\/blog\/wp-content\/uploads\/2026\/10\/come-mitigare-cve-2026-108398-net-wdac-bypass-la-mia-procedura-dynamic-module-loading-security-signed-policy-e-applicati-1792825339.jpg","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"CVE-2026-108398 WDAC bypass,Windows Defender Application Control signed policy,application whitelisting .NET dynamic module,WDAC dynamic code security mitigation,application allowlisting enterprise strategy","footnotes":""},"categories":[6],"tags":[1466,1464,1465,516,1452,638],"class_list":["post-6467","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows","tag-net-framework","tag-application-whitelisting","tag-cve-2026-108398","tag-patch-management","tag-wdac","tag-windows-security"],"_links":{"self":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts\/6467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/comments?post=6467"}],"version-history":[{"count":0,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts\/6467\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/media\/6468"}],"wp:attachment":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/media?parent=6467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/categories?post=6467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/tags?post=6467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}