@blamejs/exceptd-skills 0.21.2 → 0.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_meta": {
3
3
  "schema_version": "1.1.0",
4
- "last_updated": "2026-08-19",
4
+ "last_updated": "2026-09-24",
5
5
  "last_threat_review": "2026-05-17",
6
6
  "purpose": "Zero-day learning loop output. Each entry maps a CVE to: attack vector, defense chain analysis, framework coverage, new control requirements generated, and exposure scoring. v1.1.0 (2026-05-15): every entry now carries ai_discovered_zeroday boolean + ai_discovery_source enum + ai_discovery_date + ai_assist_factor ladder, per AGENTS.md Hard Rule #7.",
7
7
  "note": "Never delete entries. Closed gaps are marked status: closed. History is data.",
@@ -17,7 +17,7 @@
17
17
  "rebuild_after_days": 365,
18
18
  "note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
19
19
  },
20
- "entry_count": 1720
20
+ "entry_count": 1752
21
21
  },
22
22
  "CVE-2026-31431": {
23
23
  "name": "Copy Fail",
@@ -45909,7 +45909,7 @@
45909
45909
  "ai_discovery_source": "human_researcher"
45910
45910
  },
45911
45911
  "CVE-2020-14644": {
45912
- "name": "Oracle WebLogic Server Remote Code Execution Vulnerability",
45912
+ "name": "Oracle WebLogic Server Remote Code Execution Vulnerability (CVE-2020-14644)",
45913
45913
  "lesson_date": "2026-07-11",
45914
45914
  "attack_vector": {
45915
45915
  "description": "An unauthenticated attacker sends a crafted serialized Java object over the WebLogic T3 or IIOP protocol; WebLogic deserializes it through a vulnerable gadget chain and executes attacker code as the server process, resulting in full takeover.",
@@ -72447,7 +72447,7 @@
72447
72447
  ]
72448
72448
  },
72449
72449
  "CVE-2022-41082": {
72450
- "name": "Microsoft Exchange Server Remote Code Execution Vulnerability",
72450
+ "name": "Microsoft Exchange Server Remote Code Execution Vulnerability (CVE-2022-41082)",
72451
72451
  "lesson_date": "2026-08-06",
72452
72452
  "ai_discovered_zeroday": false,
72453
72453
  "ai_discovery_source": "human_researcher",
@@ -112004,7 +112004,7 @@
112004
112004
  ]
112005
112005
  },
112006
112006
  "CVE-2017-11826": {
112007
- "name": "Microsoft Office Remote Code Execution Vulnerability",
112007
+ "name": "Microsoft Office Remote Code Execution Vulnerability (CVE-2017-11826)",
112008
112008
  "lesson_date": "2026-08-21",
112009
112009
  "ai_discovered_zeroday": false,
112010
112010
  "ai_discovery_source": "human_researcher",
@@ -142640,5 +142640,2662 @@
142640
142640
  ]
142641
142641
  }
142642
142642
  ]
142643
+ },
142644
+ "CVE-2026-93952": {
142645
+ "name": "Arista VeloCloud Orchestrator Improper Input Validation Vulnerability",
142646
+ "lesson_date": "2026-09-23",
142647
+ "ai_discovered_zeroday": false,
142648
+ "ai_discovery_source": "human_researcher",
142649
+ "ai_discovery_date": null,
142650
+ "ai_assist_factor": "none",
142651
+ "attack_vector": {
142652
+ "description": "An unauthenticated attacker with network access to the VCO web interface, and access to the public portion of a VeloCloud Edge authentication certificate, sends a request that improper input validation routes to privileged internal functionality, which can compromise the VCO host and the data the orchestrator manages and may give access to the managed edge devices.",
142653
+ "privileges_required": "none; no VCO tenant or operator credentials are needed, only network access to the web interface and the public part of an Edge authentication certificate",
142654
+ "complexity": "the CVSS 4.0 vector rates attack complexity high, but the flaw is confirmed as actively exploited in the field",
142655
+ "ai_factor": "Not AI-discovered; the advisory credits an external finder without naming AI tooling, and no source claims AI built the exploit."
142656
+ },
142657
+ "defense_chain": {
142658
+ "prevention": {
142659
+ "what_would_have_worked": "Restricting the VCO web interface to trusted administrative networks and upgrading to the fixed train (5.2.3.16 or 6.4.2.8) where one exists",
142660
+ "was_this_required": false,
142661
+ "framework_requiring_it": "NIS2-Art21-network-security",
142662
+ "adequacy": "Network restriction reduces reach but does not close the flaw, and for the 6.1.x and 7.0.x trains no fixed release yet exists, so the interim measure is the only control available."
142663
+ },
142664
+ "detection": {
142665
+ "what_would_have_worked": "Watching VCO web access logs for anomalous path components and encoded input, the x-vc-opt nginx header, and the advisory's file and systemd-unit indicators on the host",
142666
+ "was_this_required": false,
142667
+ "framework_requiring_it": "ISO-27001-2022-A.8.9",
142668
+ "adequacy": "The indicators are concrete, but the advisory states there is no single definitive indicator, so detection depends on correlating web, application and host logs."
142669
+ },
142670
+ "response": {
142671
+ "what_would_have_worked": "Capturing VCO logs and file-system timestamps, checking for the indicators of compromise, then rebuilding the orchestrator from a trusted source, rotating credentials and validating managed edge device state",
142672
+ "was_this_required": true,
142673
+ "framework_requiring_it": "CISA BOD 26-04 forensic triage (flagged in the KEV entry), for agencies bound by the directive",
142674
+ "adequacy": "Because a VCO compromise may give an attacker access to the managed VeloCloud Edge devices, restoring the orchestrator and rotating credentials is the load-bearing step; patching an already-compromised orchestrator without evidence capture leaves any implanted daemon or stolen credential in place."
142675
+ }
142676
+ },
142677
+ "framework_coverage": {
142678
+ "NIST-800-53-SI-10": {
142679
+ "covered": true,
142680
+ "adequate": false
142681
+ },
142682
+ "NIS2-Art21-network-security": {
142683
+ "covered": true,
142684
+ "adequate": false
142685
+ },
142686
+ "UK-CAF-B4": {
142687
+ "covered": true,
142688
+ "adequate": false
142689
+ },
142690
+ "AU-Essential-8-Patch": {
142691
+ "covered": true,
142692
+ "adequate": false
142693
+ },
142694
+ "ISO-27001-2022-A.8.9": {
142695
+ "covered": true,
142696
+ "adequate": false
142697
+ }
142698
+ },
142699
+ "new_control_requirements": [
142700
+ {
142701
+ "id": "NEW-CTRL-134",
142702
+ "name": "DEVICE-MANAGEMENT-GATEWAY-CONFIG-ENDPOINT-AUTH-INPUT-NEUTRALIZATION",
142703
+ "description": "A network device or orchestration service validates request input and checks the caller's authorization on every management endpoint before the request can invoke a privileged internal function.",
142704
+ "evidence": "Arista Security Advisory 0183 describes CVE-2026-93952 as improper input validation that lets an unauthenticated network request to the VeloCloud Orchestrator web interface reach privileged internal functionality and impact the VCO host; authenticating every configuration endpoint and neutralizing the input before any privileged action would have kept the request from reaching that functionality.",
142705
+ "gap_closes": [
142706
+ "NIST-800-53-SI-10",
142707
+ "UK-CAF-B4",
142708
+ "NIS2-Art21-network-security",
142709
+ "ISO-27001-2022-A.8.9"
142710
+ ]
142711
+ },
142712
+ {
142713
+ "id": "NEW-CTRL-030",
142714
+ "name": "PERIMETER-DEVICE-ZERODAY-SLA-TIER",
142715
+ "description": "A device exposed directly to the internet is placed in a dedicated accelerated patch tier whose clock is independent of the severity label the vendor assigns to the flaw.",
142716
+ "evidence": "CVE-2026-93952 was added to CISA KEV on 2026-09-22 with a 2026-09-25 due date while Arista had shipped fixed releases only for the 5.2.3 and 6.4.2 VeloCloud Orchestrator trains; a compressed remediation tier for the internet-reachable orchestrator, independent of any severity label, is what drives the 6.1.x and 7.0.x deployments to the interim restrictions inside the window.",
142717
+ "gap_closes": [
142718
+ "AU-Essential-8-Patch",
142719
+ "UK-CAF-B4",
142720
+ "NIS2-Art21-network-security"
142721
+ ]
142722
+ },
142723
+ {
142724
+ "id": "NEW-CTRL-032",
142725
+ "name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
142726
+ "description": "After an actively exploited pre-authentication compromise of a network-reachable appliance, the response defaults to exporting configuration, rebuilding from a trusted image and rotating every credential the device held, rather than patching the running system.",
142727
+ "evidence": "Arista's advisory for CVE-2026-93952 states that a compromise of the VeloCloud Orchestrator may reach the managed VeloCloud Edge devices and advises restoring or replacing affected orchestrator instances from trusted sources and rotating credentials, which is a rebuild-and-rotate response rather than patch-in-place.",
142728
+ "gap_closes": [
142729
+ "UK-CAF-B4",
142730
+ "NIS2-Art21-network-security"
142731
+ ]
142732
+ }
142733
+ ]
142734
+ },
142735
+ "CVE-2021-31207": {
142736
+ "name": "Microsoft Exchange Server Security Feature Bypass Vulnerability",
142737
+ "lesson_date": "2026-09-23",
142738
+ "ai_discovered_zeroday": false,
142739
+ "ai_discovery_source": "human_researcher",
142740
+ "ai_discovery_date": null,
142741
+ "ai_assist_factor": "none",
142742
+ "attack_vector": {
142743
+ "description": "After passing the ProxyShell authentication bypass, a caller self-assigns the Mailbox Import Export role and issues a mailbox export whose file path is a UNC path under the web root, writing a web shell that runs as SYSTEM. It chains with CVE-2021-34473 and CVE-2021-34523.",
142744
+ "privileges_required": "None once the ProxyShell chain has bypassed authentication; the standalone flaw needs a mailbox role that the chain lets the attacker self-assign",
142745
+ "complexity": "high",
142746
+ "ai_factor": "Not AI-discovered and no AI-assisted weaponization; credited to an outside researcher who demonstrated it at Pwn2Own 2021, with no AI tooling claimed."
142747
+ },
142748
+ "defense_chain": {
142749
+ "prevention": {
142750
+ "what_would_have_worked": "Installing Microsoft's May 2021 update KB5003435, which CISA states remediates all three ProxyShell vulnerabilities, removes the mailbox-export write.",
142751
+ "was_this_required": true,
142752
+ "framework_requiring_it": "AU-Essential-8-Patch",
142753
+ "adequacy": "The update is the complete fix and was available months before mass exploitation; the failure was leaving it unapplied because the flaw was rated Moderate."
142754
+ },
142755
+ "detection": {
142756
+ "what_would_have_worked": "Alerting on New-MailboxExportRequest with a -FilePath to a web-root UNC path and on New-ManagementRoleAssignment granting Mailbox Import Export through the remote PowerShell endpoint.",
142757
+ "was_this_required": false,
142758
+ "framework_requiring_it": "UK-CAF-B4",
142759
+ "adequacy": "These are reliable exploitation signals but presuppose that PowerShell and export-request auditing is collected."
142760
+ },
142761
+ "response": {
142762
+ "what_would_have_worked": "Treating a ProxyShell hit as a chain compromise: removing dropped web shells, reviewing mailbox exports, and rotating credentials before returning the server to service.",
142763
+ "was_this_required": false,
142764
+ "framework_requiring_it": null,
142765
+ "adequacy": "Applying KB5003435 stops re-exploitation but does not undo an export or remove a shell already written."
142766
+ }
142767
+ },
142768
+ "framework_coverage": {
142769
+ "NIST-800-53-SI-2": {
142770
+ "covered": true,
142771
+ "adequate": false,
142772
+ "gap": "The organization-defined timeframe let the May 2021 fix sit unapplied through the exploitation window under a Moderate rating."
142773
+ },
142774
+ "NIS2-Art21-patch-management": {
142775
+ "covered": true,
142776
+ "adequate": false,
142777
+ "gap": "No known-exploited prioritization distinguished a chain-link Moderate flaw from routine maintenance."
142778
+ },
142779
+ "UK-CAF-B4": {
142780
+ "covered": true,
142781
+ "adequate": false,
142782
+ "gap": "'Promptly' is not defined against a Moderate-rated flaw that completes an internet-facing code-execution chain, so a deferral could be judged prompt."
142783
+ },
142784
+ "AU-Essential-8-Patch": {
142785
+ "covered": true,
142786
+ "adequate": true,
142787
+ "gap": "The applicable window closed by 2021-06-11, before the August 2021 exploitation, so meeting it would have prevented the compromise; only an internal instance at Maturity Level One has no window."
142788
+ },
142789
+ "ISO-27001-2022-A.8.8": {
142790
+ "covered": true,
142791
+ "adequate": false,
142792
+ "gap": "A register that inherits vendor severity ranks the flaw low and does not surface its role in the chain."
142793
+ }
142794
+ },
142795
+ "new_control_requirements": [
142796
+ {
142797
+ "id": "NEW-CTRL-001",
142798
+ "name": "CISA-KEV-RESPONSE-SLA",
142799
+ "description": "A vulnerability listed in a national known-exploited catalog starts a fixed mitigation clock measured in hours, applied independently of the vendor's own severity rating.",
142800
+ "evidence": "Microsoft fixed CVE-2021-31207 in KB5003435 on 2021-05-11 under a Moderate rating; CISA reported active exploitation of ProxyShell on 2021-08-21 and added CVE-2021-31207 to KEV on 2021-11-03 with a 2021-11-17 due date and known ransomware use, so for a server still unpatched at the listing the catalog entry, not the Moderate rating, sets the clock.",
142801
+ "gap_closes": [
142802
+ "NIST-800-53-SI-2",
142803
+ "ISO-27001-2022-A.8.8"
142804
+ ]
142805
+ }
142806
+ ]
142807
+ },
142808
+ "CVE-2021-34473": {
142809
+ "name": "Microsoft Exchange Server Remote Code Execution Vulnerability (CVE-2021-34473)",
142810
+ "lesson_date": "2026-09-23",
142811
+ "ai_discovered_zeroday": false,
142812
+ "ai_discovery_source": "human_researcher",
142813
+ "ai_discovery_date": null,
142814
+ "ai_assist_factor": "none",
142815
+ "attack_vector": {
142816
+ "description": "A pre-authentication request forgery in the Autodiscover service accepts a URI that is not validated before the backend is reached, so an unauthenticated attacker reaches internal endpoints such as PowerShell and MAPI. Chained with CVE-2021-34523 and CVE-2021-31207 it gives code execution as SYSTEM.",
142817
+ "privileges_required": "None; the flaw is reachable without authentication",
142818
+ "complexity": "low",
142819
+ "ai_factor": "Not AI-discovered and no AI-assisted weaponization; credited to an outside researcher, with no AI tooling claimed."
142820
+ },
142821
+ "defense_chain": {
142822
+ "prevention": {
142823
+ "what_would_have_worked": "Installing the April 2021 update KB5001779, which Microsoft released for other Critical Exchange CVEs and which already fixed this Autodiscover request forgery (fixed builds Exchange 2013 CU23 15.0.1497.015, Exchange 2016 CU19 15.1.2176.012 or CU20 15.1.2242.008, Exchange 2019 CU8 15.2.792.013 or CU9 15.2.858.010), or the May 2021 update KB5003435, which supersedes it and closes the full ProxyShell chain (fixed builds Exchange 2013 CU23 15.0.1497.018, Exchange 2016 CU19 15.1.2176.014 or CU20 15.1.2242.010, Exchange 2019 CU8 15.2.792.015 or CU9 15.2.858.012).",
142824
+ "was_this_required": true,
142825
+ "framework_requiring_it": "ISO-27001-2022-A.8.8",
142826
+ "adequacy": "The update is the fix; input validation on the Autodiscover URI is the vendor-side change, and no configuration in front of the server substitutes for it against a pre-authentication request forgery."
142827
+ },
142828
+ "detection": {
142829
+ "what_would_have_worked": "Alerting on web server log entries whose URI query carries the autodiscover.json request-forgery forms or /autodiscover.json with a backend path, in any HTTP method, as the SigmaHQ ProxyShell rules do, and treating responses exposing OwaADUserNotFoundException as a sign of scanning.",
142830
+ "was_this_required": false,
142831
+ "framework_requiring_it": "UK-CAF-B4",
142832
+ "adequacy": "The query patterns catch both attempts and successful requests, but the exploit varies the impersonated endpoint, so match on the request-forgery shape rather than one path."
142833
+ },
142834
+ "response": {
142835
+ "what_would_have_worked": "Following a nation-state initial-access playbook for a confirmed ProxyShell compromise: removing web shells, hunting for the follow-on tools reported in AA21-321A, and rotating credentials.",
142836
+ "was_this_required": false,
142837
+ "framework_requiring_it": null,
142838
+ "adequacy": "For this flaw the update alone is insufficient once exploited, because state-sponsored actors used it for initial access ahead of encryption and ransomware."
142839
+ }
142840
+ },
142841
+ "framework_coverage": {
142842
+ "NIST-800-53-SI-2": {
142843
+ "covered": true,
142844
+ "adequate": false,
142845
+ "gap": "Until Microsoft documented the CVE in July, a flaw record keyed by CVE could not show it on a server that had deferred the April update."
142846
+ },
142847
+ "NIS2-Art21-patch-management": {
142848
+ "covered": true,
142849
+ "adequate": false,
142850
+ "gap": "The vendor's disclosure trailed its fix, so handling that works from published CVEs could not prioritize this flaw until July."
142851
+ },
142852
+ "UK-CAF-B4": {
142853
+ "covered": true,
142854
+ "adequate": false,
142855
+ "gap": "A deferral of the April update was weighed without this unannounced pre-authentication entry point in view."
142856
+ },
142857
+ "AU-ISM-1546": {
142858
+ "covered": true,
142859
+ "adequate": false,
142860
+ "gap": "Configuring authentication in front of the system does not reach a flaw that admits an unauthenticated request through the product's own validation."
142861
+ },
142862
+ "ISO-27001-2022-A.8.8": {
142863
+ "covered": true,
142864
+ "adequate": false,
142865
+ "gap": "A register fed by Microsoft's CVE list had no entry for three months, so exposure evaluations for servers below the April builds left the flaw out."
142866
+ }
142867
+ },
142868
+ "new_control_requirements": [
142869
+ {
142870
+ "id": "NEW-CTRL-001",
142871
+ "name": "CISA-KEV-RESPONSE-SLA",
142872
+ "description": "A vulnerability listed in a national known-exploited catalog starts a fixed mitigation clock measured in hours, driven by the presence of an exploited fix on installed builds rather than by the vendor advisory date.",
142873
+ "evidence": "CISA added CVE-2021-34473 to KEV on 2021-11-03 with a 2021-11-17 due date and known ransomware use, after its 2021-08-21 alert on active ProxyShell exploitation, and AA21-321A reports Iranian state-sponsored actors using it for initial access since at least October 2021; for a Microsoft Exchange Server still below the April 2021 builds at the listing, the listing calls for an hours-scale clock rather than an organization-defined remediation period.",
142874
+ "gap_closes": [
142875
+ "NIST-800-53-SI-2",
142876
+ "ISO-27001-2022-A.8.8",
142877
+ "NIS2-Art21-patch-management"
142878
+ ]
142879
+ },
142880
+ {
142881
+ "id": "NEW-CTRL-043",
142882
+ "name": "NATION-STATE-INITIAL-ACCESS-IR-ESCALATION",
142883
+ "description": "Incident-response runbooks carry an explicit escalation path that activates when a confirmed exploit chain is attributed to a state-sponsored actor, because ordinary incident severity understates the response such intrusions require.",
142884
+ "evidence": "CISA, FBI, ACSC and NCSC (AA21-321A) reported Iranian state-sponsored actors using CVE-2021-34473 in Microsoft Exchange Server for initial access since at least October 2021 ahead of encryption and ransomware, which is the nation-state escalation trigger a response plan must carry.",
142885
+ "gap_closes": [
142886
+ "UK-CAF-B4"
142887
+ ]
142888
+ }
142889
+ ]
142890
+ },
142891
+ "CVE-2020-1380": {
142892
+ "name": "Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability (CVE-2020-1380)",
142893
+ "lesson_date": "2026-09-23",
142894
+ "ai_discovered_zeroday": false,
142895
+ "ai_discovery_source": "human_researcher",
142896
+ "ai_discovery_date": null,
142897
+ "ai_assist_factor": "none",
142898
+ "attack_vector": {
142899
+ "description": "A crafted page opened in Internet Explorer 11 triggers a use-after-free in the default jscript9.dll engine through two JIT mismodelings, detaching a Float32Array buffer inside a valueOf callback to gain code execution as the current user. The in-the-wild chain then elevated privilege with CVE-2020-0986.",
142900
+ "privileges_required": "none beyond convincing the target to open a crafted page in Internet Explorer 11",
142901
+ "complexity": "low to exploit, per the CVSS rating; Kaspersky observed reliable exploitation of Internet Explorer 11 on Windows 10 build 18363 x64",
142902
+ "ai_factor": "None. Discovered in the wild by Kaspersky's Boris Larin; no AI tooling claimed."
142903
+ },
142904
+ "defense_chain": {
142905
+ "prevention": {
142906
+ "what_would_have_worked": "Installing the August 11, 2020 updates (KB4571692, KB4571694, KB4571741, KB4571709, KB4565349, KB4565351 or KB4566782 on Windows 10 and Windows Server 2016 and 2019; the IE Cumulative KB4571687 or the Monthly Rollup KB4571703, KB4571736 or KB4571729 on the older lines, with Extended Security Updates on Windows 7 SP1 and Windows Server 2008 R2 SP1), plus the June 2020 CVE-2020-0986 update (KB4561666, KB4561673, KB4561612 or KB4561674) where only the IE Cumulative is installed on Windows 8.1 and Windows Server 2012 and 2012 R2; there is no configuration workaround because the flaw is in jscript9.dll rather than jscript.dll",
142907
+ "was_this_required": true,
142908
+ "framework_requiring_it": "NIST-800-53-SI-2",
142909
+ "adequacy": "The update is the only fix, and it could not close the May 2020 zero-day window; the jscript.dll workaround used for earlier bugs gave no protection here."
142910
+ },
142911
+ "detection": {
142912
+ "what_would_have_worked": "Alerting on script that detaches a typed-array buffer inside a valueOf callback and calls CollectGarbage, on Internet Explorer dropping ok.exe to a temporary folder, and on splwow64.exe launching PowerShell",
142913
+ "was_this_required": false,
142914
+ "framework_requiring_it": null,
142915
+ "adequacy": "Kaspersky documented these behaviors, but detecting them needs endpoint monitoring of the browser and its child processes."
142916
+ },
142917
+ "response": {
142918
+ "what_would_have_worked": "Rebuilding any host that ran the exploit and rotating its credentials, and blocking the Operation PowerFall download host and sample hashes",
142919
+ "was_this_required": false,
142920
+ "framework_requiring_it": null,
142921
+ "adequacy": "The in-the-wild chain escalated to a second exploit and fetched a payload, so a full rebuild is warranted rather than a browser reset."
142922
+ }
142923
+ },
142924
+ "framework_coverage": {
142925
+ "NIST-800-53-SI-2": {
142926
+ "covered": true,
142927
+ "adequate": false
142928
+ },
142929
+ "NIS2-Art21-patch-management": {
142930
+ "covered": true,
142931
+ "adequate": false
142932
+ },
142933
+ "UK-CAF-B4": {
142934
+ "covered": true,
142935
+ "adequate": false
142936
+ },
142937
+ "AU-Essential-8-Patch": {
142938
+ "covered": true,
142939
+ "adequate": false
142940
+ },
142941
+ "ISO-27001-2022-A.8.8": {
142942
+ "covered": true,
142943
+ "adequate": false
142944
+ }
142945
+ },
142946
+ "new_control_requirements": [
142947
+ {
142948
+ "id": "NEW-CTRL-001",
142949
+ "name": "CISA-KEV-RESPONSE-SLA",
142950
+ "description": "A KEV listing starts a fixed mitigation clock measured in hours, and where no configuration workaround exists the clock runs against deploying the vendor update itself.",
142951
+ "evidence": "CVE-2020-1380 was exploited in the wild in Operation PowerFall in May 2020 and Microsoft shipped the fix on August 11, 2020; it is listed in CISA KEV (added 2021-11-03). A clock measured from the update, not from advisory browsing, is what a program needs, since no jscript9.dll workaround exists.",
142952
+ "gap_closes": [
142953
+ "NIST-800-53-SI-2",
142954
+ "AU-Essential-8-Patch",
142955
+ "ISO-27001-2022-A.8.8"
142956
+ ]
142957
+ },
142958
+ {
142959
+ "id": "NEW-CTRL-038",
142960
+ "name": "MITIGATION-ACTIVE-PATCH-PENDING-VERDICT-CLASS",
142961
+ "description": "A compliance verdict must confirm that a compensating control actually covers the reachable code path, and must not carry a mitigation adopted for a related flaw as coverage for one it does not touch.",
142962
+ "evidence": "CVE-2020-1380 is in jscript9.dll, so the jscript.dll access-restriction that operators recorded as mitigating the earlier JScript bugs gives no protection; a host carrying that workaround as coverage for this flaw is unmitigated, and Kaspersky's analysis confirms the restriction does not apply.",
142963
+ "gap_closes": [
142964
+ "UK-CAF-B4",
142965
+ "NIST-800-53-SI-2"
142966
+ ]
142967
+ }
142968
+ ]
142969
+ },
142970
+ "CVE-2021-27085": {
142971
+ "name": "Microsoft Internet Explorer Remote Code Execution Vulnerability",
142972
+ "lesson_date": "2026-09-23",
142973
+ "ai_discovered_zeroday": false,
142974
+ "ai_discovery_source": "human_researcher",
142975
+ "ai_discovery_date": null,
142976
+ "ai_assist_factor": "none",
142977
+ "attack_vector": {
142978
+ "description": "A crafted web page opened in Internet Explorer 11 triggers an unspecified flaw that gives code execution in the context of the current user. Microsoft marks it exploited in the wild and publishes no mechanism, CWE or indicators.",
142979
+ "privileges_required": "none beyond convincing the target to open a crafted page in Internet Explorer 11",
142980
+ "complexity": "low to exploit, per the CVSS rating; no public exploit is available",
142981
+ "ai_factor": "None. Reported to Microsoft by FireEye; no AI tooling claimed."
142982
+ },
142983
+ "defense_chain": {
142984
+ "prevention": {
142985
+ "what_would_have_worked": "Installing the March 9, 2021 updates for Internet Explorer 11 (KB5000809, KB5000822, KB5000808 or KB5000802), and disabling or removing Internet Explorer where it is not required",
142986
+ "was_this_required": true,
142987
+ "framework_requiring_it": "AU-Essential-8-Patch",
142988
+ "adequacy": "The update is the only fix Microsoft offered and no workaround was published, so before March 2021 the exposure could be reduced only by not using the browser."
142989
+ },
142990
+ "detection": {
142991
+ "what_would_have_worked": "Alerting on Internet Explorer 11 rendering untrusted pages and spawning child processes on hosts that do not need the browser",
142992
+ "was_this_required": false,
142993
+ "framework_requiring_it": null,
142994
+ "adequacy": "Microsoft published no technical detail or indicators for this flaw, so detection rests on generic browser-exploitation behavior rather than a specific signature."
142995
+ },
142996
+ "response": {
142997
+ "what_would_have_worked": "Treating any affected host as running code at the current user's rights, then reimaging it and rotating credentials",
142998
+ "was_this_required": false,
142999
+ "framework_requiring_it": null,
143000
+ "adequacy": "With the flaw confirmed exploited in the wild and no public detail, a conservative rebuild is the safer response."
143001
+ }
143002
+ },
143003
+ "framework_coverage": {
143004
+ "NIST-800-53-SI-2": {
143005
+ "covered": true,
143006
+ "adequate": false
143007
+ },
143008
+ "NIS2-Art21-patch-management": {
143009
+ "covered": true,
143010
+ "adequate": false
143011
+ },
143012
+ "UK-CAF-B4": {
143013
+ "covered": true,
143014
+ "adequate": false
143015
+ },
143016
+ "AU-Essential-8-Patch": {
143017
+ "covered": true,
143018
+ "adequate": false
143019
+ },
143020
+ "ISO-27001-2022-A.8.8": {
143021
+ "covered": true,
143022
+ "adequate": false
143023
+ }
143024
+ },
143025
+ "new_control_requirements": [
143026
+ {
143027
+ "id": "NEW-CTRL-001",
143028
+ "name": "CISA-KEV-RESPONSE-SLA",
143029
+ "description": "A KEV listing starts a fixed mitigation clock measured in hours, and where the vendor publishes no detail the listing and the exploited flag are what the clock keys on.",
143030
+ "evidence": "Microsoft released the fix for CVE-2021-27085 on March 9, 2021 and changed its exploited flag to Yes on March 12, 2021, crediting FireEye; CISA added it to KEV on 2021-11-03. With no published detail, the exploited flag and the KEV listing are what a mitigation clock must key on.",
143031
+ "gap_closes": [
143032
+ "NIST-800-53-SI-2",
143033
+ "ISO-27001-2022-A.8.8",
143034
+ "NIS2-Art21-patch-management"
143035
+ ]
143036
+ },
143037
+ {
143038
+ "id": "NEW-CTRL-122",
143039
+ "name": "EOL-ASSET-DECOMMISSION",
143040
+ "description": "Software the supplier no longer patches is isolated and scheduled for removal within a bounded window, with mandatory compensating configuration applied until it is gone.",
143041
+ "evidence": "CVE-2021-27085 affects Internet Explorer 11 only on Windows 10 versions 1803 through 20H2 and Windows Server 2019, and the Internet Explorer 11 desktop application ended support on Windows 10 semi-annual channel releases on June 15, 2022; where the browser is unsupported or not needed, disabling or removing it is the response.",
143042
+ "gap_closes": [
143043
+ "AU-Essential-8-Patch",
143044
+ "UK-CAF-B4"
143045
+ ]
143046
+ }
143047
+ ]
143048
+ },
143049
+ "CVE-2019-0541": {
143050
+ "name": "Microsoft MSHTML Remote Code Execution Vulnerability",
143051
+ "lesson_date": "2026-09-23",
143052
+ "ai_discovered_zeroday": false,
143053
+ "ai_discovery_source": "human_researcher",
143054
+ "ai_discovery_date": null,
143055
+ "ai_assist_factor": "none",
143056
+ "attack_vector": {
143057
+ "description": "The MSHTML engine improperly validates input. In the HTML editing scenario Microsoft describes, a user who edits a specially crafted file runs attacker code in the context of that user, and if the user holds administrative rights the attacker can take control of the host.",
143058
+ "privileges_required": "None beyond convincing a user to edit a specially crafted file; execution runs as the current user.",
143059
+ "complexity": "Low; a public proof of concept exists (Exploit-DB 46536), and exploitation needs a user to edit a crafted file.",
143060
+ "ai_factor": "Not AI-discovered; no source claims AI tooling. Credited to an outside researcher working with iDefense Labs."
143061
+ },
143062
+ "defense_chain": {
143063
+ "prevention": {
143064
+ "what_would_have_worked": "Applying the January 2019 update for every listed product: the Internet Explorer cumulative update, monthly rollup or Windows 10 cumulative update, and the separate Office and viewer updates.",
143065
+ "was_this_required": true,
143066
+ "framework_requiring_it": "AU-Essential-8-Patch",
143067
+ "adequacy": "The updates remove the flaw, but only where each listed product is patched, so a program that tracks one product's update can leave another listed product on the same host exposed."
143068
+ },
143069
+ "detection": {
143070
+ "what_would_have_worked": "Alerting when a process starts right after a user chooses Edit on an HTML file in Internet Explorer or msohtmed.exe, and flagging .htm, .html and .xhtml files in local folders or on network shares that carry a meta tag named ProgId.",
143071
+ "was_this_required": false,
143072
+ "framework_requiring_it": "ISO-27001-2022-A.8.8",
143073
+ "adequacy": "The process-spawn signal fires after code runs, and no detection-grade template for this CVE was available to build a request-level rule."
143074
+ },
143075
+ "response": {
143076
+ "what_would_have_worked": "Isolating the host and rotating credentials the user held after a confirmed execution, then confirming that every listed product on the host received its January 2019 update.",
143077
+ "was_this_required": false,
143078
+ "framework_requiring_it": "UK-CAF-B4",
143079
+ "adequacy": "Endpoint cleanup restores the host, but confirming each listed product is patched is the step that prevents a repeat through a different product."
143080
+ }
143081
+ },
143082
+ "framework_coverage": {
143083
+ "NIST-800-53-SI-2": {
143084
+ "covered": true,
143085
+ "adequate": false
143086
+ },
143087
+ "NIS2-Art21-vulnerability-management": {
143088
+ "covered": true,
143089
+ "adequate": false
143090
+ },
143091
+ "UK-CAF-B4": {
143092
+ "covered": true,
143093
+ "adequate": false
143094
+ },
143095
+ "AU-Essential-8-Patch": {
143096
+ "covered": true,
143097
+ "adequate": true
143098
+ },
143099
+ "ISO-27001-2022-A.8.8": {
143100
+ "covered": true,
143101
+ "adequate": false
143102
+ }
143103
+ },
143104
+ "new_control_requirements": [
143105
+ {
143106
+ "id": "NEW-CTRL-001",
143107
+ "name": "CISA-KEV-RESPONSE-SLA",
143108
+ "description": "When a vulnerability is listed in the national known-exploited catalog, treat it as an incident-tempo event and apply the vendor fix or a documented mitigation within a short, fixed service-level window rather than on the routine patch cycle.",
143109
+ "evidence": "CVE-2019-0541 in the MSHTML engine was added to the CISA known-exploited catalog on 2021-11-03; Microsoft shipped the fix in the January 2019 updates and a public proof of concept (Exploit-DB 46536) followed in March 2019, so for hosts still unpatched when the flaw was listed, a known-exploited-anchored window would have put the January 2019 updates on a fixed deadline.",
143110
+ "gap_closes": [
143111
+ "NIST-800-53-SI-2",
143112
+ "ISO-27001-2022-A.8.8",
143113
+ "AU-Essential-8-Patch",
143114
+ "UK-CAF-B4",
143115
+ "NIS2-Art21-vulnerability-management"
143116
+ ]
143117
+ },
143118
+ {
143119
+ "id": "NEW-CTRL-018",
143120
+ "name": "SCANNER-PAPER-COMPLIANCE-TEST",
143121
+ "description": "Reporting a component patched from one product's version string alone is treated as paper compliance, and the operational check must resolve the specific build and configuration that actually decides whether the flaw is reachable.",
143122
+ "evidence": "Microsoft lists Internet Explorer 9, 10 and 11, Office 2010, 2013, 2016 and 2019, Office 365 ProPlus, Word Viewer and Excel Viewer 2007 as affected by CVE-2019-0541, each fixed by a different January 2019 update; a scanner keyed to one product's version string can report a host patched while another listed product on it stays vulnerable.",
143123
+ "gap_closes": [
143124
+ "ISO-27001-2022-A.8.8",
143125
+ "AU-Essential-8-Patch",
143126
+ "NIST-800-53-SI-2",
143127
+ "UK-CAF-B4",
143128
+ "NIS2-Art21-vulnerability-management"
143129
+ ]
143130
+ }
143131
+ ]
143132
+ },
143133
+ "CVE-2017-11774": {
143134
+ "name": "Microsoft Office Outlook Security Feature Bypass Vulnerability",
143135
+ "lesson_date": "2026-09-23",
143136
+ "ai_discovered_zeroday": false,
143137
+ "ai_discovery_source": "human_researcher",
143138
+ "ai_discovery_date": null,
143139
+ "ai_assist_factor": "none",
143140
+ "attack_vector": {
143141
+ "description": "With valid mailbox credentials, an attacker sets a folder's home page (the PR_FOLDER_WEBVIEWINFO property) to an attacker-hosted HTML page loaded through ieframe; the page uses the OutlookViewCtl ActiveX control and script to run commands with the user's privileges the next time the folder is refreshed or Outlook restarts.",
143142
+ "privileges_required": "for the documented home page technique, valid mailbox credentials for the target account, obtained by credential theft, password spraying or reuse before the home page can be set",
143143
+ "complexity": "low once credentials are held, since RULER automates setting the home page and forcing the refresh; the credential requirement is the gating step",
143144
+ "ai_factor": "Not AI-discovered. Credited to Etienne Stalmans of SensePost; no AI tooling is claimed."
143145
+ },
143146
+ "defense_chain": {
143147
+ "prevention": {
143148
+ "what_would_have_worked": "Applying the October 2017 Outlook update for the installed version (4011196, 4011178 or 4011162) to disable the folder home page feature, keeping the EnableRoamingFolderHomepages value off, replacing Outlook releases now past end of support, and enforcing multi-factor authentication so stolen credentials cannot be used to set a home page",
143149
+ "was_this_required": true,
143150
+ "framework_requiring_it": "UK-CAF-B2",
143151
+ "adequacy": "The update removes the feature, but it can be re-enabled by registry and the flaw depends on a credential compromise that patching does not address, so multi-factor authentication on mailbox access is the load-bearing preventive control."
143152
+ },
143153
+ "detection": {
143154
+ "what_would_have_worked": "Alerting when outlook.exe spawns a script host or shell child process, and auditing mailbox folders for an unexpected PR_FOLDER_WEBVIEWINFO home page with the NotRuler homepage check",
143155
+ "was_this_required": false,
143156
+ "framework_requiring_it": "ISO-27001-2022-A.8.16",
143157
+ "adequacy": "Both signals are reliable and documented, but FireEye notes defenders often misread the Outlook-spawned process as a phishing attachment and miss that valid credentials and mailbox persistence are involved, understating the scope."
143158
+ },
143159
+ "response": {
143160
+ "what_would_have_worked": "Resetting the compromised mailbox credentials, removing the planted home page property from every affected folder, and rebuilding hosts where POSHC2 or POWERTON persistence was established",
143161
+ "was_this_required": false,
143162
+ "framework_requiring_it": "NIS2-Art21-vulnerability-management",
143163
+ "adequacy": "Clearing the home page and resetting credentials is necessary, but because the activity was attributed to a state-linked actor the response has to assume broader access than the single mailbox where the persistence was found."
143164
+ }
143165
+ },
143166
+ "framework_coverage": {
143167
+ "NIST-800-53-SI-2": {
143168
+ "covered": true,
143169
+ "adequate": false
143170
+ },
143171
+ "NIS2-Art21-vulnerability-management": {
143172
+ "covered": true,
143173
+ "adequate": false
143174
+ },
143175
+ "UK-CAF-B2": {
143176
+ "covered": true,
143177
+ "adequate": false
143178
+ },
143179
+ "AU-Essential-8-Patch": {
143180
+ "covered": true,
143181
+ "adequate": false
143182
+ },
143183
+ "ISO-27001-2022-A.8.16": {
143184
+ "covered": true,
143185
+ "adequate": false
143186
+ }
143187
+ },
143188
+ "new_control_requirements": [
143189
+ {
143190
+ "id": "NEW-CTRL-001",
143191
+ "name": "CISA-KEV-RESPONSE-SLA",
143192
+ "description": "A vulnerability on the CISA KEV list is handled on an incident-speed clock: a documented four-hour mitigation service level applies from the listing, whether the mitigation is a patch, a vendor configuration change or isolation of the affected system.",
143193
+ "evidence": "CVE-2017-11774 was used by the APT33-linked activity FireEye documented and is KEV-listed since 2021-11-03; a KEV-anchored clock drives the October 2017 Outlook updates (4011196, 4011178 and 4011162) and the removal of any planted home page at incident tempo rather than on a routine Office patch cycle.",
143194
+ "gap_closes": [
143195
+ "NIST-800-53-SI-2",
143196
+ "AU-Essential-8-Patch",
143197
+ "NIS2-Art21-vulnerability-management"
143198
+ ]
143199
+ },
143200
+ {
143201
+ "id": "NEW-CTRL-018",
143202
+ "name": "SCANNER-PAPER-COMPLIANCE-TEST",
143203
+ "description": "A scanner that reports a system patched from a version string alone is paper compliance; the operational test resolves the configuration state that actually decides whether the flaw is reachable.",
143204
+ "evidence": "For CVE-2017-11774 the October 2017 Outlook updates (4011196, 4011178 and 4011162) disable the folder home page feature in the client, but the EnableRoamingFolderHomepages registry value restores it, and a home page URL already written to a mailbox folder's PR_FOLDER_WEBVIEWINFO property stays on the mailbox and runs on any client that lacks the update or has that value set to 1 until the property is cleared; a scanner reading only the Outlook patch level records such a host as compliant.",
143205
+ "gap_closes": [
143206
+ "NIST-800-53-SI-2",
143207
+ "AU-Essential-8-Patch",
143208
+ "UK-CAF-B2"
143209
+ ]
143210
+ },
143211
+ {
143212
+ "id": "NEW-CTRL-043",
143213
+ "name": "NATION-STATE-INITIAL-ACCESS-IR-ESCALATION",
143214
+ "description": "An incident-response runbook includes a dedicated escalation path that triggers on attribution of a confirmed exploit chain to a state-sponsored actor, since routine incident severity understates the intrusion.",
143215
+ "evidence": "FireEye attributes in-the-wild CVE-2017-11774 home page persistence to APT33, an Iranian-linked actor deploying POSHC2 and POWERTON; discovery of this technique on a mailbox warrants nation-state escalation rather than treatment as a single-user phishing incident.",
143216
+ "gap_closes": [
143217
+ "ISO-27001-2022-A.8.16"
143218
+ ]
143219
+ }
143220
+ ]
143221
+ },
143222
+ "CVE-2021-27059": {
143223
+ "name": "Microsoft Office Remote Code Execution Vulnerability (CVE-2021-27059)",
143224
+ "lesson_date": "2026-09-23",
143225
+ "ai_discovered_zeroday": false,
143226
+ "ai_discovery_source": "human_researcher",
143227
+ "ai_discovery_date": null,
143228
+ "ai_assist_factor": "none",
143229
+ "attack_vector": {
143230
+ "description": "Microsoft publishes no technical description of CVE-2021-27059 beyond its title and CVSS vector: a network attack vector with high attack complexity, high privileges required and required user interaction, a change of scope, and high impact on confidentiality, integrity and availability. The Preview Pane is not an attack vector. The Office 2016 fix is the KB4493225 package, which updates mso.dll to 16.0.5134.1000.",
143231
+ "privileges_required": "High, according to Microsoft's CVSS vector (PR:H). Microsoft does not say which privileges an attacker needs.",
143232
+ "complexity": "High attack complexity (AC:H), and a user must take an action (UI:R); displaying a file in the Preview Pane does not trigger the flaw.",
143233
+ "ai_factor": "Not AI-discovered. Microsoft credits Chi-Yu You and Dhanesh Kizhakkinan of FireEye Inc. as the finders, and no source describes AI tooling."
143234
+ },
143235
+ "defense_chain": {
143236
+ "prevention": {
143237
+ "what_would_have_worked": "Installing KB4493225 on Office 2016 MSI-based editions (build 16.0.5134.1000), KB4493228 on Office 2013 SP1 MSI-based editions (build 15.0.5327.1000) and Office 2013 RT SP1, and KB4504703 on Office 2010 SP2 MSI-based editions (build 14.0.7266.5000), then replacing all three releases with a supported Office release.",
143238
+ "was_this_required": true,
143239
+ "framework_requiring_it": "AU-Essential-8-Patch (ISM-1691 at Maturity Levels One and Two, ISM-1692 and ISM-1901 at Maturity Level Three, ISM-1704 for unsupported office suites)",
143240
+ "adequacy": "The three updates close CVE-2021-27059 on each affected release. They do not keep the host supported: Office 2016, the newest affected release, reached its end of support on October 14, 2025, so only the replacement step removes the host from an unsupported Office release."
143241
+ },
143242
+ "detection": {
143243
+ "what_would_have_worked": "Inventorying Office installations by release, install technology and build or mso.dll version to find MSI-based installations of Office 2016 below 16.0.5134.1000, Office 2013 below 15.0.5327.1000 and Office 2010 below 14.0.7266.5000, and alerting when an Office application starts a command interpreter or script host.",
143244
+ "was_this_required": true,
143245
+ "framework_requiring_it": "ISO-27001-2022-A.8.8",
143246
+ "adequacy": "The version check is exact because Microsoft publishes the fixed builds. The process alert is a general heuristic, because Microsoft has published no exploitation details for this CVE and no detection is specific to it."
143247
+ },
143248
+ "response": {
143249
+ "what_would_have_worked": "Reviewing the process-creation and file-write history of Office applications on hosts that stayed below the fixed builds after the March 2021 release, and treating a host where an Office application started an unexplained child process as compromised.",
143250
+ "was_this_required": false,
143251
+ "framework_requiring_it": null,
143252
+ "adequacy": "With no published indicators, the review depends on general Office exploitation signals and on how long process telemetry is retained. The KEV entry does not flag this CVE for forensic triage."
143253
+ }
143254
+ },
143255
+ "framework_coverage": {
143256
+ "NIST-800-53-SI-2": {
143257
+ "covered": true,
143258
+ "adequate": false,
143259
+ "gap": "A remediation period keyed to the Important rating and a 7.6 base score places an update that Microsoft marks exploited below the critical tier."
143260
+ },
143261
+ "NIS2-Art21-patch-management": {
143262
+ "covered": true,
143263
+ "adequate": false,
143264
+ "gap": "Neither Annex point 6.6.1 nor 6.10.2 sets a fixed timeframe, and whether Microsoft's exploited status, added three days after release in an informational revision, makes the update critical is left to the entity."
143265
+ },
143266
+ "UK-CAF-B4": {
143267
+ "covered": true,
143268
+ "adequate": false,
143269
+ "gap": "B4.d gives no time limit for prompt mitigation of an update marked exploited three days after release, and its Partially achieved outcome sets no end date for temporary mitigations on the unsupported Office 2010, 2013 and 2016 releases."
143270
+ },
143271
+ "AU-Essential-8-Patch": {
143272
+ "covered": true,
143273
+ "adequate": false,
143274
+ "gap": "At Maturity Level Three the 48-hour window from the 2021-03-09 release closed before Microsoft marked the flaw exploited on 2021-03-12, so the update fell into the two-week window ending 2021-03-23."
143275
+ },
143276
+ "ISO-27001-2022-A.8.8": {
143277
+ "covered": true,
143278
+ "adequate": false,
143279
+ "gap": "A register that records an Office release without its install technology and build cannot evaluate the MSI-edition boundaries 16.0.5134.1000, 15.0.5327.1000 and 14.0.7266.5000."
143280
+ }
143281
+ },
143282
+ "new_control_requirements": [
143283
+ {
143284
+ "id": "NEW-CTRL-001",
143285
+ "name": "CISA-KEV-RESPONSE-SLA",
143286
+ "description": "When the vendor or a government catalog marks a vulnerability as exploited, the fix must be deployed within an expedited window that starts when that status is published, including when the status changes after the original release.",
143287
+ "evidence": "Microsoft released the fix for CVE-2021-27059 on 2021-03-09 with an Important rating, and revision 1.1 of its update guide entry on 2021-03-12 changed the Exploited flag to Yes and added the FireEye acknowledgement. CISA added the CVE to its KEV catalog on 2021-11-03 with a 2021-11-17 due date. A response clock that starts from the exploited status would have started on 2021-03-12 for any Office 2010, 2013 or 2016 host still below builds 14.0.7266.5000, 15.0.5327.1000 or 16.0.5134.1000.",
143288
+ "gap_closes": [
143289
+ "NIST-800-53-SI-2",
143290
+ "NIS2-Art21-patch-management",
143291
+ "AU-Essential-8-Patch"
143292
+ ]
143293
+ },
143294
+ {
143295
+ "id": "NEW-CTRL-122",
143296
+ "name": "EOL-ASSET-DECOMMISSION",
143297
+ "description": "Productivity software that has passed its supplier's end-of-support date must be replaced or removed within a set period, and every host that still runs it must be recorded with that date until it is removed.",
143298
+ "evidence": "Every product Microsoft lists as affected by CVE-2021-27059 is past its end of support date according to Microsoft's upgrade planning page: Office 2010 on October 13, 2020, Office 2013 on April 11, 2023 and Office 2016 on October 14, 2025. Microsoft still shipped KB4504703 for Office 2010 SP2 in March 2021, after that product's end of support date, so a host that carries the fix can still be running an unsupported release.",
143299
+ "gap_closes": [
143300
+ "UK-CAF-B4"
143301
+ ]
143302
+ }
143303
+ ]
143304
+ },
143305
+ "CVE-2021-36948": {
143306
+ "name": "Microsoft Windows Update Medic Service Privilege Escalation Vulnerability",
143307
+ "lesson_date": "2026-09-23",
143308
+ "ai_discovered_zeroday": false,
143309
+ "ai_discovery_source": "vendor_research",
143310
+ "ai_discovery_date": null,
143311
+ "ai_assist_factor": "none",
143312
+ "attack_vector": {
143313
+ "description": "A user who can already run code on a Windows 10 1809 to 21H1, Windows Server 2019, or Windows Server, version 2004 or 20H2 host exploits a flaw in the Windows Update Medic Service to gain elevated privileges. Microsoft has published no root cause or trigger.",
143314
+ "privileges_required": "Low: a local account able to run code on the host (CVSS AV:L, PR:L), with no user interaction.",
143315
+ "complexity": "Low (CVSS AC:L). Microsoft's temporal vector records functional exploit code maturity (E:F) and its advisory marks exploitation detected; no public exploit code was found.",
143316
+ "ai_factor": "Not AI-discovered. Microsoft credits its own MSTIC and MSRC teams, and no source mentions AI tooling."
143317
+ },
143318
+ "defense_chain": {
143319
+ "prevention": {
143320
+ "what_would_have_worked": "Installing KB5005030 (build 10.0.17763.2114) on Windows 10 Enterprise LTSC 2019, Windows 10 IoT Enterprise LTSC 2019, Windows 10 IoT Core LTSC or Windows Server 2019, KB5005031 (build 10.0.18363.1734) on Windows 10 Version 1909 Enterprise, Education or IoT Enterprise, or KB5005033 (builds 10.0.19041.1165, 10.0.19042.1165 and 10.0.19043.1165) on Windows 10 Versions 2004, 20H2 and 21H1 and Windows Server, version 2004 and 20H2, or a later monthly update, and restarting into the fixed build. The non-LTSC editions of Windows 10 Version 1809 and Windows 10 Version 1909 Home, Pro, Pro Education and Pro for Workstations received no fix, so they needed an upgrade to a supported release. Before 2021-08-10 no fix existed, so limiting who could run code locally on affected hosts was the only way to reduce exposure.",
143321
+ "was_this_required": true,
143322
+ "framework_requiring_it": "AU-Essential-8-Patch (ISM-1695, ISM-1696, ISM-1877)",
143323
+ "adequacy": "Complete for this CVE once the host is running the fixed build. It could not stop the exploitation Microsoft detected before the fix was released, and on Windows 10 versions that no longer receive updates it closes this flaw but no later one."
143324
+ },
143325
+ "detection": {
143326
+ "what_would_have_worked": "Comparing each host's running OS build with the fixed build for its version, and alerting on processes at System integrity level started by a parent running under an ordinary user account (Sysmon Event ID 1).",
143327
+ "was_this_required": false,
143328
+ "framework_requiring_it": "NIST-800-53-SI-4",
143329
+ "adequacy": "The build comparison is exact for exposure. The process-integrity analytic is a generic privilege-escalation signal, because Microsoft published no artifact specific to this flaw, and it does not fire on an escalation that never starts a new process."
143330
+ },
143331
+ "response": {
143332
+ "what_would_have_worked": "Reviewing any affected host on which untrusted code ran before it restarted into the fixed build for persistence, new services and credential access at elevated privilege, instead of treating the update as the end of the incident.",
143333
+ "was_this_required": false,
143334
+ "framework_requiring_it": null,
143335
+ "adequacy": "Microsoft published no indicators for this flaw, so the review relies on general signs of privilege escalation. Installing the update removes the flaw but not anything an attacker installed with the privileges it gave."
143336
+ }
143337
+ },
143338
+ "framework_coverage": {
143339
+ "NIST-800-53-SI-2": {
143340
+ "covered": true,
143341
+ "adequate": false,
143342
+ "gap": "A remediation period keyed to the Important rating treats an exploited-at-release flaw as routine, and deployment evidence does not show the restart into the fixed build."
143343
+ },
143344
+ "NIST-800-53-SI-4": {
143345
+ "covered": true,
143346
+ "adequate": false,
143347
+ "gap": "With no published artifact, monitoring can only watch for generic privilege escalation and cannot attribute an alert to this flaw."
143348
+ },
143349
+ "NIS2-Art21-patch-management": {
143350
+ "covered": true,
143351
+ "adequate": false,
143352
+ "gap": "The without-undue-delay tier in Annex point 6.10.2(c) applies to vulnerabilities the entity itself identifies as critical, and the Annex does not tie that judgment to the vendor's exploitation flag."
143353
+ },
143354
+ "UK-CAF-B4": {
143355
+ "covered": true,
143356
+ "adequate": false,
143357
+ "gap": "With no vendor mitigation, any temporary mitigation for this local flaw is the operator's own design, B4.d does not say what makes one adequate, and 'promptly' has no timeframe."
143358
+ },
143359
+ "AU-Essential-8-Patch": {
143360
+ "covered": true,
143361
+ "adequate": false,
143362
+ "gap": "Workstations at Maturity Levels One and Two keep one month after exploitation is known, and no window covers exploitation before the release."
143363
+ },
143364
+ "ISO-27001-2022-A.8.8": {
143365
+ "covered": true,
143366
+ "adequate": false,
143367
+ "gap": "Timescales left to the organization let a ranking by the Important rating schedule an exploited flaw as routine."
143368
+ }
143369
+ },
143370
+ "new_control_requirements": [
143371
+ {
143372
+ "id": "NEW-CTRL-145",
143373
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
143374
+ "description": "When an operating system vendor reports that a local privilege-escalation flaw was exploited before its fix, the monthly update carrying the fix must be installed and the host restarted into the fixed build inside the remediation window, and the running build must be read from each host.",
143375
+ "evidence": "Microsoft's August 2021 advisory for CVE-2021-36948 marks the flaw 'Exploitation Detected', lists only KB5005030, KB5005031 and KB5005033 as remediations, marks each as requiring a restart, and offers no workaround. A Windows 10 or Windows Server 2019 host that has installed the update but not restarted still runs a build below 10.0.17763.2114, 10.0.18363.1734, 10.0.19041.1165, 10.0.19042.1165 or 10.0.19043.1165.",
143376
+ "gap_closes": [
143377
+ "AU-Essential-8-Patch",
143378
+ "UK-CAF-B4",
143379
+ "NIST-800-53-SI-2"
143380
+ ]
143381
+ },
143382
+ {
143383
+ "id": "NEW-CTRL-001",
143384
+ "name": "CISA-KEV-RESPONSE-SLA",
143385
+ "description": "A flaw listed as known exploited must be remediated or mitigated on every affected host within a short fixed period, measured from the earlier of the catalog listing and the vendor's own exploitation notice.",
143386
+ "evidence": "Microsoft published the fix for CVE-2021-36948 on 2021-08-10 with its advisory already marking the flaw 'Exploitation Detected', and CISA added it to KEV on 2021-11-03 with a due date of 2021-11-17. A clock started at the KEV listing would begin 85 days after Microsoft's own exploitation notice.",
143387
+ "gap_closes": [
143388
+ "NIST-800-53-SI-2",
143389
+ "ISO-27001-2022-A.8.8",
143390
+ "NIS2-Art21-patch-management"
143391
+ ]
143392
+ },
143393
+ {
143394
+ "id": "NEW-CTRL-122",
143395
+ "name": "EOL-ASSET-DECOMMISSION",
143396
+ "description": "Operating system releases that no longer receive vendor security updates must be upgraded, isolated or removed within a set period, and a fix installed before the end of updates must not be counted as continuing coverage.",
143397
+ "evidence": "The August 2021 fix for CVE-2021-36948 exists for Windows 10 Version 1909 Enterprise, Education and IoT Enterprise, for Windows 10 Versions 2004, 20H2 and 21H1, and for Windows Server, version 2004 and 20H2, but Microsoft's Windows 10 release information page marks Windows 10 Versions 1909, 2004, 20H2 and 21H1 as end of updates, and its Windows Server Semi-Annual Channel lifecycle page shows that servicing has ended for Windows Server, version 2004 and 20H2. A host on one of them can be closed against this CVE and still be exposed to flaws fixed after its last update. The non-LTSC editions of Windows 10 Version 1809 and Windows 10 Version 1909 Home, Pro, Pro Education and Pro for Workstations had left servicing before 2021-08-10 and received no fix, according to the KB5005030 and KB5005031 pages and Microsoft's Windows 10 lifecycle pages.",
143398
+ "gap_closes": [
143399
+ "AU-Essential-8-Patch",
143400
+ "ISO-27001-2022-A.8.8"
143401
+ ]
143402
+ }
143403
+ ]
143404
+ },
143405
+ "CVE-2021-31199": {
143406
+ "name": "Microsoft Enhanced Cryptographic Provider Privilege Escalation Vulnerability (CVE-2021-31199)",
143407
+ "lesson_date": "2026-09-23",
143408
+ "ai_discovered_zeroday": false,
143409
+ "ai_discovery_source": "unknown",
143410
+ "ai_discovery_date": null,
143411
+ "ai_assist_factor": "none",
143412
+ "attack_vector": {
143413
+ "description": "A local, low-privileged user triggers a flaw in the Windows Enhanced Cryptographic Provider to elevate privilege. Sources describe this as the privilege-escalation stage of an exploit chain that pairs it with the Adobe Acrobat and Reader use-after-free flaw CVE-2021-28550.",
143414
+ "privileges_required": "low; a local user context is required before the escalation, consistent with the CVSS vector AV:L/PR:L",
143415
+ "complexity": "low",
143416
+ "ai_factor": "None. No source claims AI tooling in the discovery or weaponization of this flaw."
143417
+ },
143418
+ "defense_chain": {
143419
+ "prevention": {
143420
+ "what_would_have_worked": "Installing the June 8, 2021 Windows security update for the running version (KB5003646, KB5003637, KB5003671, KB5003667 and the related builds), which removes the escalation, then rebooting the host, and applying the Adobe APSB21-29 update to close the document-reader entry point.",
143421
+ "was_this_required": true,
143422
+ "framework_requiring_it": "AU-Essential-8-Patch",
143423
+ "adequacy": "Adequate once the June 2021 updates exist, but the flaw was exploited as a zero-day before that date, so no patch could have prevented the earliest exploitation; the update also requires a reboot, which the sub-Maturity-Level-Three windows do not force quickly."
143424
+ },
143425
+ "detection": {
143426
+ "what_would_have_worked": "Watching for a low-privileged process obtaining a higher-integrity token shortly after a document reader opens an untrusted file, and checking hosts for the paired Adobe CVE-2021-28550 exploitation.",
143427
+ "was_this_required": false,
143428
+ "framework_requiring_it": null,
143429
+ "adequacy": "Weak on its own, because no public exploit or indicator feed exists for this local escalation; detection depends on generic privilege-transition monitoring rather than a signature specific to the flaw."
143430
+ },
143431
+ "response": {
143432
+ "what_would_have_worked": "Applying the June 2021 Windows update and the Adobe update across the fleet, prioritizing hosts that open untrusted documents, and confirming the installed build after reboot.",
143433
+ "was_this_required": true,
143434
+ "framework_requiring_it": "NIST-800-53-SI-2",
143435
+ "adequacy": "The update is the durable fix, but because the flaw is only the escalation half of a chain, response must also close the paired document-reader flaw or the chain remains usable."
143436
+ }
143437
+ },
143438
+ "framework_coverage": {
143439
+ "NIST-800-53-SI-2": {
143440
+ "covered": true,
143441
+ "adequate": false
143442
+ },
143443
+ "NIS2-Art21-vulnerability-management": {
143444
+ "covered": true,
143445
+ "adequate": false
143446
+ },
143447
+ "UK-CAF-B4": {
143448
+ "covered": true,
143449
+ "adequate": false
143450
+ },
143451
+ "AU-Essential-8-Patch": {
143452
+ "covered": true,
143453
+ "adequate": false
143454
+ },
143455
+ "ISO-27001-2022-A.8.8": {
143456
+ "covered": true,
143457
+ "adequate": false
143458
+ }
143459
+ },
143460
+ "new_control_requirements": [
143461
+ {
143462
+ "id": "NEW-CTRL-145",
143463
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
143464
+ "description": "A local privilege-escalation flaw the operating-system vendor reports as already exploited moves onto the accelerated remediation track as soon as that status is published, and the fix is counted as applied only after the host has restarted into it and the running build has been confirmed on the machine.",
143465
+ "evidence": "Microsoft's June 2021 update guide marks CVE-2021-31199, a Windows Enhanced Cryptographic Provider elevation-of-privilege flaw, as exploited at release, and every fix (for example KB5003646 for Windows 10 Version 1809 and Windows Server 2019, KB5003637 for Windows 10 Versions 2004 through 21H1) requires a restart, so a fleet that stages the update without restarting still carries the escalation.",
143466
+ "gap_closes": [
143467
+ "AU-Essential-8-Patch",
143468
+ "NIST-800-53-SI-2",
143469
+ "ISO-27001-2022-A.8.8",
143470
+ "UK-CAF-B4",
143471
+ "NIS2-Art21-vulnerability-management"
143472
+ ]
143473
+ }
143474
+ ]
143475
+ },
143476
+ "CVE-2021-31201": {
143477
+ "name": "Microsoft Enhanced Cryptographic Provider Privilege Escalation Vulnerability (CVE-2021-31201)",
143478
+ "lesson_date": "2026-09-23",
143479
+ "ai_discovered_zeroday": false,
143480
+ "ai_discovery_source": "unknown",
143481
+ "ai_discovery_date": null,
143482
+ "ai_assist_factor": "none",
143483
+ "attack_vector": {
143484
+ "description": "A local, low-privileged user triggers a flaw in the Windows Enhanced Cryptographic Provider to elevate privilege. Sources place it, with the sibling flaw CVE-2021-31199, as the privilege-escalation stage of a chain paired with the Adobe Acrobat and Reader use-after-free flaw CVE-2021-28550.",
143485
+ "privileges_required": "low; a local user context is required before the escalation, consistent with the CVSS vector AV:L/PR:L",
143486
+ "complexity": "low",
143487
+ "ai_factor": "None. No source claims AI tooling in the discovery or weaponization of this flaw."
143488
+ },
143489
+ "defense_chain": {
143490
+ "prevention": {
143491
+ "what_would_have_worked": "Installing the June 8, 2021 Windows security update for the running version (KB5003646, KB5003637, KB5003697, KB5003661 and the related builds), which removes the escalation, then rebooting the host, and applying the Adobe APSB21-29 update to close the paired document-reader entry point.",
143492
+ "was_this_required": true,
143493
+ "framework_requiring_it": "AU-Essential-8-Patch",
143494
+ "adequacy": "Adequate once the June 2021 updates exist, but the flaw was exploited as a zero-day beforehand, so no update could have prevented the earliest exploitation, and the fix requires a reboot the lower maturity windows do not compel quickly."
143495
+ },
143496
+ "detection": {
143497
+ "what_would_have_worked": "Alerting on a low-privileged process acquiring a higher-integrity token soon after a document reader opens an untrusted file, and checking hosts for the paired CVE-2021-28550 exploitation.",
143498
+ "was_this_required": false,
143499
+ "framework_requiring_it": null,
143500
+ "adequacy": "Weak on its own, since no public exploit or indicator feed exists for this local escalation and detection rests on generic privilege-transition monitoring."
143501
+ },
143502
+ "response": {
143503
+ "what_would_have_worked": "Deploying the June 2021 Windows update and the Adobe update across the fleet, prioritizing hosts that open untrusted documents, and verifying the installed build after reboot.",
143504
+ "was_this_required": true,
143505
+ "framework_requiring_it": "NIS2-Art21-patch-management",
143506
+ "adequacy": "The update is the durable fix, but because this is only the escalation half of a chain, response must also close the paired document-reader flaw or the chain stays usable."
143507
+ }
143508
+ },
143509
+ "framework_coverage": {
143510
+ "NIST-800-53-SI-2": {
143511
+ "covered": true,
143512
+ "adequate": false
143513
+ },
143514
+ "NIS2-Art21-patch-management": {
143515
+ "covered": true,
143516
+ "adequate": false
143517
+ },
143518
+ "UK-CAF-B4": {
143519
+ "covered": true,
143520
+ "adequate": false
143521
+ },
143522
+ "AU-Essential-8-Patch": {
143523
+ "covered": true,
143524
+ "adequate": false
143525
+ },
143526
+ "ISO-27001-2022-A.8.8": {
143527
+ "covered": true,
143528
+ "adequate": false
143529
+ }
143530
+ },
143531
+ "new_control_requirements": [
143532
+ {
143533
+ "id": "NEW-CTRL-145",
143534
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
143535
+ "description": "An operating-system privilege-escalation flaw that its vendor reports as exploited gets a shortened remediation deadline from the date of that report, and a host counts as remediated only when, after a restart, the build it is running matches the vendor's fixed build.",
143536
+ "evidence": "Microsoft's June 2021 update guide marks CVE-2021-31201, the sibling Enhanced Cryptographic Provider elevation-of-privilege flaw, as exploited at release; its fixes (for example KB5003697 for Windows Server 2012 and KB5003661 for Windows Server 2008 SP2) all require a restart, so a host that installs but does not reboot keeps the flaw live.",
143537
+ "gap_closes": [
143538
+ "AU-Essential-8-Patch",
143539
+ "NIST-800-53-SI-2",
143540
+ "ISO-27001-2022-A.8.8",
143541
+ "UK-CAF-B4",
143542
+ "NIS2-Art21-patch-management"
143543
+ ]
143544
+ }
143545
+ ]
143546
+ },
143547
+ "CVE-2018-8653": {
143548
+ "name": "Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability (CVE-2018-8653)",
143549
+ "lesson_date": "2026-09-23",
143550
+ "ai_discovered_zeroday": false,
143551
+ "ai_discovery_source": "human_researcher",
143552
+ "ai_discovery_date": null,
143553
+ "ai_assist_factor": "none",
143554
+ "attack_vector": {
143555
+ "description": "A crafted web page, which the attacker persuades the user to view, for example through a link sent by email, serves JScript that runs on the legacy jscript.dll engine and triggers a use-after-free in the way it handles objects in memory, giving remote code execution in the context of the current user.",
143556
+ "privileges_required": "None on the target beyond persuading the user to view the page; the code runs with the current user's rights.",
143557
+ "complexity": "High: the exploit needs the legacy engine selected and a reliable use-after-free, reflected in the network attack vector with high complexity and required user interaction.",
143558
+ "ai_factor": "Not AI-discovered. Credited to Clement Lecigne of Google's Threat Analysis Group; no AI tooling is claimed."
143559
+ },
143560
+ "defense_chain": {
143561
+ "prevention": {
143562
+ "what_would_have_worked": "Installing the December 19, 2018 out-of-band update (KB4483187 or the matching Windows 10 security update) promptly, and restricting access to jscript.dll in the interim.",
143563
+ "was_this_required": true,
143564
+ "framework_requiring_it": "AU-Essential-8-Patch",
143565
+ "adequacy": "The update fixes the flaw, but because it was exploited as a zero-day before release, prompt patching limits future exposure without undoing any pre-patch compromise."
143566
+ },
143567
+ "detection": {
143568
+ "what_would_have_worked": "Alerting on pages that force IE8 rendering and select jscript.dll from outside a local intranet, on script blocks that name the JScript.Compact engine, on scripts that call CollectGarbage or use the Enumerator object, and on the svchost.exe process hosting the WPAD service running proxy-script content or starting processes after an Internet Explorer session, built on the detection methods and exploit details Google Project Zero and the Threat Analysis Group publish.",
143569
+ "was_this_required": false,
143570
+ "framework_requiring_it": "UK-CAF-B4",
143571
+ "adequacy": "These are useful heuristics but noisy; the page-content checks require inspection of content that reaches Internet Explorer directly, and the WPAD check needs process telemetry from the endpoint."
143572
+ },
143573
+ "response": {
143574
+ "what_would_have_worked": "Applying the out-of-band update fleet-wide, restricting jscript.dll where the update could not be installed at once, and moving users off the legacy engine.",
143575
+ "was_this_required": false,
143576
+ "framework_requiring_it": "NIS2-Art21-patch-management",
143577
+ "adequacy": "Restricting jscript.dll removes the vulnerable path immediately but reduces functionality for content that relies on it, so it is a stopgap until the update lands."
143578
+ }
143579
+ },
143580
+ "framework_coverage": {
143581
+ "NIST-800-53-SI-2": {
143582
+ "covered": true,
143583
+ "adequate": false
143584
+ },
143585
+ "NIS2-Art21-patch-management": {
143586
+ "covered": true,
143587
+ "adequate": false
143588
+ },
143589
+ "UK-CAF-B4": {
143590
+ "covered": true,
143591
+ "adequate": false
143592
+ },
143593
+ "AU-Essential-8-Patch": {
143594
+ "covered": true,
143595
+ "adequate": false
143596
+ },
143597
+ "ISO-27001-2022-A.8.8": {
143598
+ "covered": true,
143599
+ "adequate": false
143600
+ }
143601
+ },
143602
+ "new_control_requirements": [
143603
+ {
143604
+ "id": "NEW-CTRL-057",
143605
+ "name": "BROWSER-MANAGED-UPDATE-NO-DEFERRAL",
143606
+ "description": "A security-channel browser release must be deployed on its own expedited clock and never held back into the monthly operating-system patch cadence, and the browser build must be inventoried as a patch surface separate from the operating system.",
143607
+ "evidence": "CVE-2018-8653 is a use-after-free in the Internet Explorer jscript.dll engine fixed only by an out-of-band cumulative update; an update ring that defers browser releases or folds them into the monthly operating-system cadence would have left the actively exploited engine unpatched.",
143608
+ "gap_closes": [
143609
+ "AU-Essential-8-Patch",
143610
+ "NIST-800-53-SI-2"
143611
+ ]
143612
+ },
143613
+ {
143614
+ "id": "NEW-CTRL-018",
143615
+ "name": "SCANNER-PAPER-COMPLIANCE-TEST",
143616
+ "description": "A vulnerability scanner that reports a host as fully patched is paper compliance unless its detection content already covers the latest fix, out-of-band releases included, and the operational test must also account for the mitigation state that decides exposure.",
143617
+ "evidence": "Microsoft's December 2018 advisory for CVE-2018-8653 states that an updated Wsusscn2.cab offline scan file would not be available until the January 2019 security release, so an offline scan against the December 2018 file could not list the December 19, 2018 out-of-band Internet Explorer update as missing while the flaw was being exploited.",
143618
+ "gap_closes": [
143619
+ "ISO-27001-2022-A.8.8"
143620
+ ]
143621
+ }
143622
+ ]
143623
+ },
143624
+ "CVE-2019-1429": {
143625
+ "name": "Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability (CVE-2019-1429)",
143626
+ "lesson_date": "2026-09-23",
143627
+ "ai_discovered_zeroday": false,
143628
+ "ai_discovery_source": "human_researcher",
143629
+ "ai_discovery_date": null,
143630
+ "ai_assist_factor": "none",
143631
+ "attack_vector": {
143632
+ "description": "A crafted web page or an Office document hosting the Internet Explorer engine serves JScript on the legacy jscript.dll engine that frees a member of the arguments object during a toJSON callback, or a variable assigned to the arguments object during an Array.sort callback (the incompletely fixed CVE-2019-1367 path), and re-accesses it, a use-after-free that gives remote code execution in the context of the current user.",
143633
+ "privileges_required": "None on the target beyond persuading the user to view the page or open the document; the code runs with the current user's rights.",
143634
+ "complexity": "High to build a reliable exploit, reflected in the network attack vector with high complexity and required user interaction; a crash proof of concept is public as Exploit-DB 47707.",
143635
+ "ai_factor": "Not AI-discovered. Credited to Resecurity, iDefense Labs, Ivan Fratric of Project Zero and Clement Lecigne of the Threat Analysis Group; no AI tooling is claimed."
143636
+ },
143637
+ "defense_chain": {
143638
+ "prevention": {
143639
+ "what_would_have_worked": "Installing the November 12, 2019 update (IE Cumulative KB4525106, the matching Windows 10 security update or the Monthly Rollup) promptly.",
143640
+ "was_this_required": true,
143641
+ "framework_requiring_it": "AU-Essential-8-Patch",
143642
+ "adequacy": "The update fixes the flaw, but because it was exploited as a zero-day and a variant of a prior flaw, prompt patching plus watching for siblings of the earlier bug was needed to cover the class."
143643
+ },
143644
+ "detection": {
143645
+ "what_would_have_worked": "Alerting on pages that force IE8 rendering and select jscript.dll from outside a local intranet, on scripts that free arguments members during a toJSON or Array.sort callback, on CollectGarbage or Enumerator use, and on the svchost.exe process hosting the WPAD service running proxy-script content or starting processes after an Internet Explorer session.",
143646
+ "was_this_required": false,
143647
+ "framework_requiring_it": "UK-CAF-B4",
143648
+ "adequacy": "These heuristics are reliable but require content inspection in front of the browser, which is absent where Internet Explorer is reached directly; the WPAD check needs process telemetry from the endpoint."
143649
+ },
143650
+ "response": {
143651
+ "what_would_have_worked": "Keeping the jscript.dll restriction from the CVE-2019-1367 advisory in place, or re-applying it after the September 2019 update, until the November 12, 2019 update was installed, treating the fix for CVE-2019-1367 as a trigger to expect siblings in the same primitive, and applying the November update across the fleet.",
143652
+ "was_this_required": false,
143653
+ "framework_requiring_it": "NIS2-Art21-vulnerability-handling",
143654
+ "adequacy": "Because this flaw came from variant analysis of an incompletely fixed predecessor, a response keyed only on the original CVE would have missed the sibling until its own advisory; the jscript.dll restriction covered it only where operators kept it after the September update, which Microsoft asked them to install with the restriction reverted."
143655
+ }
143656
+ },
143657
+ "framework_coverage": {
143658
+ "NIST-800-53-SI-2": {
143659
+ "covered": true,
143660
+ "adequate": false
143661
+ },
143662
+ "NIS2-Art21-vulnerability-handling": {
143663
+ "covered": true,
143664
+ "adequate": false
143665
+ },
143666
+ "UK-CAF-B4": {
143667
+ "covered": true,
143668
+ "adequate": false
143669
+ },
143670
+ "AU-Essential-8-Patch": {
143671
+ "covered": true,
143672
+ "adequate": false
143673
+ },
143674
+ "ISO-27001-2022-A.8.8": {
143675
+ "covered": true,
143676
+ "adequate": false
143677
+ }
143678
+ },
143679
+ "new_control_requirements": [
143680
+ {
143681
+ "id": "NEW-CTRL-042",
143682
+ "name": "INCOMPLETE-PATCH-SEQUENCE-SEVERITY-MULTIPLIER",
143683
+ "description": "Vulnerability-management programs must apply a severity multiplier when a flaw is one in an incomplete-patch sequence on the same primitive, and must re-open the item rather than treating the first fix as terminal.",
143684
+ "evidence": "CVE-2019-1429 is the variant of CVE-2019-1367 that Google Project Zero found by variant analysis in the same JScript garbage-collector primitive, so the earlier fix should have re-opened the item and driven a search for siblings rather than being treated as the end of the sequence.",
143685
+ "gap_closes": [
143686
+ "NIST-800-53-SI-2",
143687
+ "NIS2-Art21-vulnerability-handling",
143688
+ "ISO-27001-2022-A.8.8"
143689
+ ]
143690
+ }
143691
+ ]
143692
+ },
143693
+ "CVE-2021-38649": {
143694
+ "name": "Microsoft Open Management Infrastructure (OMI) Privilege Escalation Vulnerability (CVE-2021-38649)",
143695
+ "lesson_date": "2026-09-23",
143696
+ "ai_discovered_zeroday": false,
143697
+ "ai_discovery_source": "human_researcher",
143698
+ "ai_discovery_date": null,
143699
+ "ai_assist_factor": "none",
143700
+ "attack_vector": {
143701
+ "description": "A local user with a low-privileged account on a host running OMI below 1.6.8-1 elevates privileges. Microsoft describes the flaw only as an elevation of privilege, and Wiz, which reported it, publishes technical detail for three sibling OMI flaws but not for this one; Wiz reports the OMI agent runs as root.",
143702
+ "privileges_required": "A low-privileged local account on a host running an OMI agent below 1.6.8-1; the remote-code-execution sibling CVE-2021-38647 needs no account when the OMI HTTPS port is exposed.",
143703
+ "complexity": "High, per NVD's CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:N); no source describes the conditions an attacker must meet.",
143704
+ "ai_factor": "None. Found by human researchers at Wiz.io; no AI tooling is claimed by any source."
143705
+ },
143706
+ "defense_chain": {
143707
+ "prevention": {
143708
+ "what_would_have_worked": "Updating the OMI agent to 1.6.8-1 on every host, including self-installed OMI, System Center Operations Manager instances and Azure HDInsight nodes whose configuration blocked Microsoft's automatic update, and bringing each extension that carries OMI to its fixed build: OMS Agent for Linux v1.13.40-0, Linux Diagnostics extension v4.0.15 or v3.0.135 (v4.0.13 in the Security Update Guide), DSC Linux agent 2.71.1.25, 2.70.0.30 or 3.0.0.3 on the matching branch, the Container Monitoring Solution image sha256:12b7682d8f9a2f67752bf121029e315abcae89bc0c34a0e05f07baec72280707, and on Azure Stack Hub Azure Monitor, Update and Configuration Management 1.14.02 and Microsoft Azure Diagnostic Extension for Linux Virtual Machines 3.1.135.",
143709
+ "was_this_required": false,
143710
+ "framework_requiring_it": "AU-Essential-8-Patch",
143711
+ "adequacy": "The 1.6.8-1 update removes the flaw, but an inventory that never recorded the silently bundled agent cannot drive the update, so prevention depends on discovering OMI first."
143712
+ },
143713
+ "detection": {
143714
+ "what_would_have_worked": "Enabling scxadmin verbose logging and alerting on Invoke_ExecuteShellCommand entries in /var/opt/microsoft/scx/log/scx.log, and on shell commands run as root from /var/opt/microsoft/scx/tmp, as Microsoft's guidance describes for commands run remotely through the OMI flaws.",
143715
+ "was_this_required": false,
143716
+ "framework_requiring_it": "ISO-27001-2022-A.8.8",
143717
+ "adequacy": "Microsoft wrote this guidance for attackers who run commands remotely through the SCXcore service, so for this local flaw it is a heuristic, and the scx.log record exists only where scxadmin verbose logging was enabled beforehand."
143718
+ },
143719
+ "response": {
143720
+ "what_would_have_worked": "Rotating any credentials reachable from the root context of the OMI host and confirming OMI is at 1.6.8-1 across the managed and self-managed fleet.",
143721
+ "was_this_required": false,
143722
+ "framework_requiring_it": null,
143723
+ "adequacy": "Credential rotation is the load-bearing step because the agent runs as root; simply updating the package restores a safe state without addressing what a prior root compromise reached."
143724
+ }
143725
+ },
143726
+ "framework_coverage": {
143727
+ "NIST-800-53-SI-2": {
143728
+ "covered": true,
143729
+ "adequate": false,
143730
+ "gap": "A silently bundled agent may be absent from the remediation program's inventory, so the 1.6.8-1 update is never scheduled."
143731
+ },
143732
+ "NIST-800-53-AC-6": {
143733
+ "covered": true,
143734
+ "adequate": false,
143735
+ "gap": "Least privilege on the VM's own accounts does not bound a flaw in the vendor daemon's root-running privilege boundary."
143736
+ },
143737
+ "NIS2-Art21-patch-management": {
143738
+ "covered": true,
143739
+ "adequate": false,
143740
+ "gap": "The directive sets no clock for applying the manual OMI update on self-managed hosts."
143741
+ },
143742
+ "UK-CAF-B4": {
143743
+ "covered": true,
143744
+ "adequate": false,
143745
+ "gap": "A port restriction offered against the remote flaw can be accepted as temporary mitigation for an extended period while the local elevation stays open."
143746
+ },
143747
+ "AU-Essential-8-Patch": {
143748
+ "covered": true,
143749
+ "adequate": false,
143750
+ "gap": "The asset class follows OMI port exposure, so an internally reachable instance has no timeframe at Maturity Level One although the flaw is local."
143751
+ },
143752
+ "ISO-27001-2022-A.8.8": {
143753
+ "covered": true,
143754
+ "adequate": false,
143755
+ "gap": "A.8.8 does not say how provider-installed software is identified, so a register built from deployed services or the Azure portal omits OMI unless each Linux host's packages are inventoried."
143756
+ }
143757
+ },
143758
+ "new_control_requirements": [
143759
+ {
143760
+ "id": "NEW-CTRL-001",
143761
+ "name": "CISA-KEV-RESPONSE-SLA",
143762
+ "description": "When a flaw is listed in the CISA Known Exploited Vulnerabilities catalog, the response clock is measured in hours, and where the vendor fix is not yet installed a compensating measure that meets that clock is deployed first.",
143763
+ "evidence": "CVE-2021-38649 was added to CISA KEV on 2021-11-03 with a 2021-11-17 due date, and Wiz reports that the Open Management Infrastructure agent runs as root. Microsoft's September 2021 security update data for CVE-2021-38649 lists only security updates (OMI 1.6.8-1 and the fixed extension builds) and no workaround or mitigation, and the OMI port restriction in Microsoft's guidance is offered against the remote-code-execution sibling CVE-2021-38647, not this local flaw. Installing the fixed build is therefore the only vendor-documented measure; limiting who can log on to the host is an operator-side measure that Microsoft does not document.",
143764
+ "gap_closes": [
143765
+ "NIST-800-53-SI-2",
143766
+ "ISO-27001-2022-A.8.8",
143767
+ "AU-Essential-8-Patch"
143768
+ ]
143769
+ }
143770
+ ]
143771
+ },
143772
+ "CVE-2019-0604": {
143773
+ "name": "Microsoft SharePoint Remote Code Execution Vulnerability",
143774
+ "lesson_date": "2026-09-23",
143775
+ "ai_discovered_zeroday": false,
143776
+ "ai_discovery_source": "human_researcher",
143777
+ "ai_discovery_date": null,
143778
+ "ai_assist_factor": "none",
143779
+ "attack_vector": {
143780
+ "description": "A request to /_layouts/15/Picker.aspx sets the PickerDialogType parameter to an ItemPickerDialog type and posts a hiddenSpanData field whose value reaches an XmlSerializer with an attacker-controlled type, deserializing a payload that runs as the SharePoint application pool and farm account.",
143781
+ "privileges_required": "NVD scores privileges required as none (PR:N), while Microsoft's advisory states that exploitation requires a user to upload a specially crafted SharePoint application package to an affected version of SharePoint.",
143782
+ "complexity": "Low with the public tool once the endpoint is reachable; it builds the picker request and serialized command automatically.",
143783
+ "ai_factor": "None. Found by an external researcher and reported through the Zero Day Initiative; no AI tooling is claimed."
143784
+ },
143785
+ "defense_chain": {
143786
+ "prevention": {
143787
+ "what_would_have_worked": "Installing every update Microsoft lists for the edition in the April 25, 2019 revision of its advisory: KB4462199 (SharePoint Server 2019), KB4462211 (SharePoint Enterprise Server 2016), KB4462202 plus KB4462143 (SharePoint Server 2013 SP1), KB4462143 (SharePoint Foundation 2013 SP1), KB4462184 plus KB4461630 (SharePoint Server 2010 SP2) and KB4461630 (SharePoint Foundation 2010 SP2), with restricted network access to Picker.aspx as an operator-side measure that Microsoft does not document.",
143788
+ "was_this_required": false,
143789
+ "framework_requiring_it": "AU-Essential-8-Patch",
143790
+ "adequacy": "The April 2019 update set is a complete fix. A SharePoint Server farm with only its February 12, 2019 update stayed exploitable until the March 12, 2019 update was installed, and until April 25, 2019 Microsoft's list for SharePoint Server 2010 SP2 omitted KB4461630, so a program that installed only the updates listed against this CVE depended on tracking each revision of the advisory."
143791
+ },
143792
+ "detection": {
143793
+ "what_would_have_worked": "Watching for new .aspx files under the SharePoint layouts directory, for POSTs to any path ending in Picker.aspx with a PickerDialogType parameter naming a Microsoft.SharePoint type and a hiddenSpanData body field, as Emerging Threats rule sid 2027345 matches, and for the SharePoint worker process spawning a shell.",
143794
+ "was_this_required": false,
143795
+ "framework_requiring_it": "UK-CAF-C1",
143796
+ "adequacy": "The webshell file-creation signal is reliable, but monitoring that watches user activity or one campaign's filenames rather than the layouts directory misses a webshell planted under another name."
143797
+ },
143798
+ "response": {
143799
+ "what_would_have_worked": "Escalating a confirmed webshell to the response a state-actor intrusion warrants, removing all webshells, rotating the farm and application-pool credentials and auditing for lateral movement, given the Emissary Panda activity.",
143800
+ "was_this_required": false,
143801
+ "framework_requiring_it": "NIS2-Art21-incident-handling",
143802
+ "adequacy": "Removing one webshell is insufficient because Unit 42 found several on one server and observed credential dumping, so response must rotate credentials and hunt for the tools uploaded alongside."
143803
+ }
143804
+ },
143805
+ "framework_coverage": {
143806
+ "NIST-800-53-SI-2": {
143807
+ "covered": true,
143808
+ "adequate": false,
143809
+ "gap": "On the SharePoint Server editions a program can record the February 2019 update as closing the flaw and miss the March 2019 update, and on Server 2010 SP2 miss KB4461630 until the April 2019 revision listed it."
143810
+ },
143811
+ "NIS2-Art21-vulnerability-handling": {
143812
+ "covered": true,
143813
+ "adequate": false,
143814
+ "gap": "Neither Article 21(2)(e) nor point 6.6.1 requires re-opening a closed finding when a fix is re-released or the list of required updates is revised."
143815
+ },
143816
+ "NIS2-Art21-incident-handling": {
143817
+ "covered": true,
143818
+ "adequate": false,
143819
+ "gap": "Handling is not tied to a nation-state initial-access trigger, so a webshell may be treated as a routine web incident."
143820
+ },
143821
+ "UK-CAF-C1": {
143822
+ "covered": true,
143823
+ "adequate": false,
143824
+ "gap": "Monitoring keyed to user activity or one campaign's filenames rather than the layouts directory misses a planted webshell."
143825
+ },
143826
+ "AU-Essential-8-Patch": {
143827
+ "covered": true,
143828
+ "adequate": true,
143829
+ "gap": "Applying each update within 48 hours of its February 12 or March 12, 2019 release would have installed the complete set before the April 2019 activity; the April 25, 2019 revision changed only the CVE mapping."
143830
+ },
143831
+ "ISO-27001-2022-A.8.8": {
143832
+ "covered": true,
143833
+ "adequate": false,
143834
+ "gap": "A.8.8 does not require re-evaluating exposure when the vendor revises which updates close a CVE, so a register closed after the February 2019 update can miss the March 2019 update on the Server editions."
143835
+ }
143836
+ },
143837
+ "new_control_requirements": [
143838
+ {
143839
+ "id": "NEW-CTRL-042",
143840
+ "name": "INCOMPLETE-PATCH-SEQUENCE-SEVERITY-MULTIPLIER",
143841
+ "description": "When a fix for a flaw proves incomplete and the vendor re-releases it, the vulnerability-management program re-opens the item and raises its severity rather than treating the first fix as terminal.",
143842
+ "evidence": "The original February 12, 2019 SharePoint update for CVE-2019-0604 fixed only the encoder in Microsoft.SharePoint.dll, and the Zero Day Initiative write-up confirms the exploit still worked against the Portal.dll encoder until Microsoft re-released the updates on March 12, 2019; Microsoft revised the advisory again on April 25, 2019 to add SharePoint Server 2013 SP1 and Foundation 2010 SP2 and a second required update for Server 2010 SP2, so the item warranted re-opening at each revision.",
143843
+ "gap_closes": [
143844
+ "NIST-800-53-SI-2",
143845
+ "ISO-27001-2022-A.8.8",
143846
+ "NIS2-Art21-vulnerability-handling"
143847
+ ]
143848
+ },
143849
+ {
143850
+ "id": "NEW-CTRL-001",
143851
+ "name": "CISA-KEV-RESPONSE-SLA",
143852
+ "description": "When a flaw is listed in the CISA Known Exploited Vulnerabilities catalog, the response clock is measured in hours, and where the vendor fix is not yet installed a compensating measure that meets that clock is deployed first.",
143853
+ "evidence": "CVE-2019-0604 was added to CISA KEV on 2021-11-03 with a 2022-05-03 due date, records known ransomware use, and has a public exploit (Exploit-DB 48053). Microsoft publishes no workaround for it, so on an internet-facing SharePoint farm the only hours-scale measure before the April 2019 update set is installed is an operator-side one that the vendor does not document, such as blocking external requests to Picker.aspx.",
143854
+ "gap_closes": [
143855
+ "AU-Essential-8-Patch",
143856
+ "ISO-27001-2022-A.8.8"
143857
+ ]
143858
+ },
143859
+ {
143860
+ "id": "NEW-CTRL-043",
143861
+ "name": "NATION-STATE-INITIAL-ACCESS-IR-ESCALATION",
143862
+ "description": "Incident-response procedures define a distinct escalation tier for a confirmed exploit chain attributed to a state-sponsored operator, so it is not triaged at the severity an ordinary intrusion receives.",
143863
+ "evidence": "Unit 42 observed Emissary Panda (APT27) China Chopper and Antak webshells on government SharePoint servers in April 2019, believes the actor exploited CVE-2019-0604 to install them, and saw it dump credentials; an intrusion of this kind is escalated beyond ordinary web-incident severity.",
143864
+ "gap_closes": [
143865
+ "NIS2-Art21-incident-handling",
143866
+ "UK-CAF-C1"
143867
+ ]
143868
+ }
143869
+ ]
143870
+ },
143871
+ "CVE-2019-0797": {
143872
+ "name": "Microsoft Win32k Privilege Escalation Vulnerability (CVE-2019-0797)",
143873
+ "lesson_date": "2026-09-23",
143874
+ "ai_discovered_zeroday": false,
143875
+ "ai_discovery_source": "human_researcher",
143876
+ "ai_discovery_date": null,
143877
+ "ai_assist_factor": "none",
143878
+ "attack_vector": {
143879
+ "description": "A local user runs a crafted application that calls the undocumented NtDCompositionDiscardFrame and NtDCompositionDestroyConnection syscalls concurrently; the missing lock lets one free a composition frame the other is still using, a use-after-free that is groomed with palettes or window objects into kernel-mode code execution.",
143880
+ "privileges_required": "A local logon and the ability to run code; the exploit was delivered in targeted intrusions after initial access.",
143881
+ "complexity": "A race condition, so the exploit must win a timing window; Kaspersky found it in use against 64-bit Windows 8 through Windows 10 build 15063.",
143882
+ "ai_factor": "None. Found by Kaspersky researchers through in-the-wild detection; no AI tooling is claimed."
143883
+ },
143884
+ "defense_chain": {
143885
+ "prevention": {
143886
+ "what_would_have_worked": "Applying the March 12, 2019 Windows update and rebooting, since no configuration workaround exists.",
143887
+ "was_this_required": false,
143888
+ "framework_requiring_it": "AU-Essential-8-Patch",
143889
+ "adequacy": "The update removes the flaw, but it was exploited as a zero-day before the update shipped and Microsoft lists no workaround, so no vendor fix or mitigation existed during that exposure window."
143890
+ },
143891
+ "detection": {
143892
+ "what_would_have_worked": "Kernel privilege-escalation monitoring for concurrent NtDComposition syscalls and for a user-mode process gaining kernel or SYSTEM privileges.",
143893
+ "was_this_required": false,
143894
+ "framework_requiring_it": "NIST-800-53-SC-39",
143895
+ "adequacy": "Kaspersky's behavioral detection and Automatic Exploit Prevention are what first detected this exploit, so detection at the kernel boundary worked here, but only on hosts already running such tooling before the March 2019 fix."
143896
+ },
143897
+ "response": {
143898
+ "what_would_have_worked": "Treating a confirmed escalation event as a targeted intrusion, given Kaspersky's belief that FruityArmor and SandCat used the exploit, rebuilding the host, and hunting for how the attacker first ran code and for the tools Kaspersky associates with SandCat, including CHAINSHOT and the FinFisher/FinSpy framework.",
143899
+ "was_this_required": false,
143900
+ "framework_requiring_it": "NIS2-Art21-incident-handling",
143901
+ "adequacy": "Because the flaw yields kernel-mode control and was used in targeted attacks after the attacker already ran code, a confirmed event requires a full-host rebuild and a hunt for the initial access, not only patching."
143902
+ }
143903
+ },
143904
+ "framework_coverage": {
143905
+ "NIST-800-53-SI-2": {
143906
+ "covered": true,
143907
+ "adequate": false,
143908
+ "gap": "A zero-day exploited before the fix leaves an exposure window no organization-defined timeframe can address."
143909
+ },
143910
+ "NIST-800-53-SC-39": {
143911
+ "covered": true,
143912
+ "adequate": false,
143913
+ "gap": "SC-39 does not require the sandboxing that Kaspersky says prevents exploitation, so ordinary unsandboxed processes can still reach the race."
143914
+ },
143915
+ "NIS2-Art21-patch-management": {
143916
+ "covered": true,
143917
+ "adequate": false,
143918
+ "gap": "A reasonable time counted from availability starts after exploitation for a flaw already exploited at release."
143919
+ },
143920
+ "NIS2-Art21-incident-handling": {
143921
+ "covered": true,
143922
+ "adequate": false,
143923
+ "gap": "Article 21(2)(b) does not require tracing the initial access behind a detected escalation attempt."
143924
+ },
143925
+ "UK-CAF-B4": {
143926
+ "covered": true,
143927
+ "adequate": false,
143928
+ "gap": "With no workaround, a local flaw classed as not externally exposed can wait for an extended period with no temporary mitigation."
143929
+ },
143930
+ "AU-Essential-8-Patch": {
143931
+ "covered": true,
143932
+ "adequate": false,
143933
+ "gap": "Exploitation from February 2019, before the March 12 release, is outside every window at every maturity level."
143934
+ },
143935
+ "ISO-27001-2022-A.8.8": {
143936
+ "covered": true,
143937
+ "adequate": false,
143938
+ "gap": "No public information existed before the release, and the register need not confirm the reboot into the fixed component."
143939
+ }
143940
+ },
143941
+ "new_control_requirements": [
143942
+ {
143943
+ "id": "NEW-CTRL-145",
143944
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
143945
+ "description": "When an operating-system vendor flags a local privilege-escalation flaw as exploited in the wild and it is listed as known-exploited, the cumulative update that fixes it is applied and the host rebooted within the stated window, not merely staged.",
143946
+ "evidence": "CVE-2019-0797 was fixed by Microsoft's March 12, 2019 Win32k update and is KEV-listed after being exploited as a zero-day; the cumulative update must be installed and the host rebooted within the stated window rather than staged, because the fixed Win32k component loads only after a restart.",
143947
+ "gap_closes": [
143948
+ "AU-Essential-8-Patch",
143949
+ "NIST-800-53-SI-2",
143950
+ "ISO-27001-2022-A.8.8"
143951
+ ]
143952
+ },
143953
+ {
143954
+ "id": "NEW-CTRL-003",
143955
+ "name": "KERNEL-EXPLOITATION-DETECTION",
143956
+ "description": "Endpoint monitoring carries rules for kernel privilege-escalation indicators, with alerting fast enough to catch an escalation attempt in progress rather than only in retrospect.",
143957
+ "evidence": "Kaspersky found CVE-2019-0797 when its Automatic Exploit Prevention detected an exploitation attempt in February 2019, before any fix existed, and Microsoft lists no workaround; on an unpatched Windows 8.1 through Windows 10 1809 or Server 2012 through 2019 host, kernel privilege-escalation monitoring of this kind is the available detection.",
143958
+ "gap_closes": [
143959
+ "UK-CAF-B4",
143960
+ "NIST-800-53-SC-39"
143961
+ ]
143962
+ }
143963
+ ]
143964
+ },
143965
+ "CVE-2021-28310": {
143966
+ "name": "Microsoft Win32k Privilege Escalation Vulnerability (CVE-2021-28310)",
143967
+ "lesson_date": "2026-09-23",
143968
+ "ai_discovered_zeroday": false,
143969
+ "ai_discovery_source": "human_researcher",
143970
+ "ai_discovery_date": null,
143971
+ "ai_assist_factor": "none",
143972
+ "attack_vector": {
143973
+ "description": "A local process drives the DirectComposition API through three win32kbase.sys syscalls, grooms the dwm.exe heap with CreateResource, ReleaseResource and SetResourceBufferProperty commands, then triggers an out-of-bounds write in dwmcore.dll to run shellcode and inject a second stage into another system process, reaching SYSTEM.",
143974
+ "privileges_required": "a local low-privileged account already able to run code on the host; Kaspersky reports it was likely used together with a browser exploit to escape a sandbox or gain system privileges, though it did not capture the full chain",
143975
+ "complexity": "low once the primitive is understood, though the exploit performs a multi-stage heap groom and spray to place a controlled buffer",
143976
+ "ai_factor": "none; found by a human researcher through exploit-prevention telemetry, with no AI tooling claimed"
143977
+ },
143978
+ "defense_chain": {
143979
+ "prevention": {
143980
+ "what_would_have_worked": "Applying the April 13, 2021 cumulative update for the running build (KB5001339, KB5001342, KB5001337 or KB5001330) and rebooting; before that release existed there was no patch-side prevention, so the flaw was open as a zero-day.",
143981
+ "was_this_required": true,
143982
+ "framework_requiring_it": "AU-Essential-8-Patch",
143983
+ "adequacy": "Complete after April 13, 2021, but inadequate for the pre-patch period: the exploit was used in the wild before Microsoft shipped a fix, so no patch window covers the time of compromise."
143984
+ },
143985
+ "detection": {
143986
+ "what_would_have_worked": "Alerting on the exploit's behavior: a non-graphics process issuing the DirectComposition syscalls in volume, dwm.exe instability, and the Kaspersky endpoint verdicts named for this exploit.",
143987
+ "was_this_required": false,
143988
+ "framework_requiring_it": "UK-CAF-B4",
143989
+ "adequacy": "Behavioral detection can catch the heap groom and the injection stage. The exploit runs its shellcode inside the user-mode dwm.exe process and then injects into another system process, so detection depends on user-mode telemetry of code execution inside dwm.exe and of process injection from dwm.exe into another system process, which is absent on hosts without an endpoint agent that records it."
143990
+ },
143991
+ "response": {
143992
+ "what_would_have_worked": "Treating any host that ran untrusted local code before the update as potentially compromised, investigating for the injected second stage, and rebuilding rather than only patching.",
143993
+ "was_this_required": false,
143994
+ "framework_requiring_it": null,
143995
+ "adequacy": "A reboot into the patched build closes the flaw, but a system exploited before patching may already carry an implanted payload that patching alone does not remove."
143996
+ }
143997
+ },
143998
+ "framework_coverage": {
143999
+ "NIST-800-53-SI-2": {
144000
+ "covered": true,
144001
+ "adequate": false
144002
+ },
144003
+ "NIS2-Art21-patch-management": {
144004
+ "covered": true,
144005
+ "adequate": false
144006
+ },
144007
+ "UK-CAF-B4": {
144008
+ "covered": true,
144009
+ "adequate": false
144010
+ },
144011
+ "AU-Essential-8-Patch": {
144012
+ "covered": true,
144013
+ "adequate": false
144014
+ },
144015
+ "ISO-27001-2022-A.8.8": {
144016
+ "covered": true,
144017
+ "adequate": false
144018
+ }
144019
+ },
144020
+ "new_control_requirements": [
144021
+ {
144022
+ "id": "NEW-CTRL-001",
144023
+ "name": "CISA-KEV-RESPONSE-SLA",
144024
+ "description": "A KEV listing must trigger a fixed mitigation clock measured in hours, not the routine monthly patch cycle.",
144025
+ "evidence": "CVE-2021-28310 was added to CISA KEV on 2021-11-03 with a 2021-11-17 due date. The fixing April 13, 2021 cumulative updates (KB5001330, KB5001337, KB5001339, KB5001342) had shipped seven months earlier, so a KEV-anchored clock closes the gap between the listing and installation on hosts still unpatched at listing time.",
144026
+ "gap_closes": [
144027
+ "NIST-800-53-SI-2",
144028
+ "ISO-27001-2022-A.8.8",
144029
+ "NIS2-Art21-patch-management",
144030
+ "AU-Essential-8-Patch"
144031
+ ]
144032
+ },
144033
+ {
144034
+ "id": "NEW-CTRL-145",
144035
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
144036
+ "description": "KEV designation of an operating-system privilege-escalation flaw starts a remediation clock that ends only when the fixing update is installed, the host has rebooted into it, and the running build is confirmed on the host itself; a staged-but-not-rebooted update does not stop the clock.",
144037
+ "evidence": "CVE-2021-28310 is a Windows privilege escalation through an out-of-bounds write in dwmcore.dll inside the user-mode Desktop Window Manager process (dwm.exe), reached through the win32kbase.sys DirectComposition syscalls, and Microsoft records it as exploited at release. The April 13, 2021 updates require a reboot, so a host that shows the update as staged but not rebooted is still exploitable; verification must confirm the running build.",
144038
+ "gap_closes": [
144039
+ "AU-Essential-8-Patch",
144040
+ "NIST-800-53-SI-2",
144041
+ "ISO-27001-2022-A.8.8",
144042
+ "UK-CAF-B4"
144043
+ ]
144044
+ }
144045
+ ]
144046
+ },
144047
+ "CVE-2019-0863": {
144048
+ "name": "Microsoft Windows Error Reporting (WER) Privilege Escalation Vulnerability",
144049
+ "lesson_date": "2026-09-23",
144050
+ "ai_discovered_zeroday": false,
144051
+ "ai_discovery_source": "human_researcher",
144052
+ "ai_discovery_date": null,
144053
+ "ai_assist_factor": "none",
144054
+ "attack_vector": {
144055
+ "description": "A local user turns the Windows Error Reporting report-queue directory into a junction to an attacker-controlled folder, drops a crafted .wer file, and triggers the WER reporting queue task so the service (via UtilAddAccessToPath in wer.dll) writes an attacker-chosen DACL onto a protected file, for example making a driver in system32\\drivers writable and reaching SYSTEM.",
144056
+ "privileges_required": "a local low-privileged account able to run code and create junctions on the host",
144057
+ "complexity": "low; a public proof of concept demonstrates the full chain",
144058
+ "ai_factor": "none; credited to human researchers with no AI tooling claimed"
144059
+ },
144060
+ "defense_chain": {
144061
+ "prevention": {
144062
+ "what_would_have_worked": "Applying the May 14, 2019 update for the running build (the Monthly Rollup KB4499164/KB4499151/KB4499171 or Security-Only KB4499175/KB4499165/KB4499158, or the Windows 10 cumulative updates KB4499154, KB4494440, KB4499181, KB4499179, KB4499167, KB4494441, KB4497936) and rebooting.",
144063
+ "was_this_required": true,
144064
+ "framework_requiring_it": "AU-Essential-8-Patch",
144065
+ "adequacy": "The update removes the flaw, but it was public and exploited at release, so hosts patched on a slow cycle stayed exposed for the window between disclosure and installation."
144066
+ },
144067
+ "detection": {
144068
+ "what_would_have_worked": "Alerting on junction creation under the WER report-queue path, on the WER service writing to protected locations on behalf of a non-admin user, and on protected drivers becoming writable.",
144069
+ "was_this_required": false,
144070
+ "framework_requiring_it": "UK-CAF-B4",
144071
+ "adequacy": "The junction and the unexpected DACL write are observable, but only where file-system and service telemetry is collected and tuned for this pattern."
144072
+ },
144073
+ "response": {
144074
+ "what_would_have_worked": "Investigating shared or multi-user hosts that ran untrusted code before patching for tampered protected files, and rebuilding where a writable-driver primitive may have been used.",
144075
+ "was_this_required": false,
144076
+ "framework_requiring_it": null,
144077
+ "adequacy": "Patching closes the flaw but does not undo a DACL change or a modified driver already planted before the update."
144078
+ }
144079
+ },
144080
+ "framework_coverage": {
144081
+ "NIST-800-53-SI-2": {
144082
+ "covered": true,
144083
+ "adequate": false
144084
+ },
144085
+ "NIS2-Art21-patch-management": {
144086
+ "covered": true,
144087
+ "adequate": false
144088
+ },
144089
+ "UK-CAF-B4": {
144090
+ "covered": true,
144091
+ "adequate": false
144092
+ },
144093
+ "AU-Essential-8-Patch": {
144094
+ "covered": true,
144095
+ "adequate": false
144096
+ },
144097
+ "ISO-27001-2022-A.8.8": {
144098
+ "covered": true,
144099
+ "adequate": false
144100
+ }
144101
+ },
144102
+ "new_control_requirements": [
144103
+ {
144104
+ "id": "NEW-CTRL-001",
144105
+ "name": "CISA-KEV-RESPONSE-SLA",
144106
+ "description": "A KEV listing must trigger a fixed mitigation clock measured in hours, not the routine monthly patch cycle.",
144107
+ "evidence": "CVE-2019-0863 was added to CISA KEV on 2021-11-03 with a 2022-05-03 due date, and a public proof of concept (Exploit-DB 46917) has existed since May 2019. A KEV-anchored clock forces the May 2019 update onto any host still unpatched at listing rather than deferring a locally exploitable escalation to a routine cycle.",
144108
+ "gap_closes": [
144109
+ "NIST-800-53-SI-2",
144110
+ "ISO-27001-2022-A.8.8",
144111
+ "NIS2-Art21-patch-management",
144112
+ "AU-Essential-8-Patch"
144113
+ ]
144114
+ },
144115
+ {
144116
+ "id": "NEW-CTRL-145",
144117
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
144118
+ "description": "KEV designation of an operating-system privilege-escalation flaw starts a remediation clock that ends only when the fixing update is installed, the host has rebooted into it, and the running build is confirmed on the host itself; a staged-but-not-rebooted update does not stop the clock.",
144119
+ "evidence": "CVE-2019-0863 is a Windows privilege escalation that Microsoft records as exploited and publicly disclosed at release and that reaches SYSTEM through a writable-driver primitive. The May 14, 2019 update requires a reboot, so a host that shows it as staged but not rebooted remains exploitable and needs on-host verification of the running build.",
144120
+ "gap_closes": [
144121
+ "AU-Essential-8-Patch",
144122
+ "NIST-800-53-SI-2",
144123
+ "ISO-27001-2022-A.8.8",
144124
+ "UK-CAF-B4"
144125
+ ]
144126
+ }
144127
+ ]
144128
+ },
144129
+ "CVE-2019-1214": {
144130
+ "name": "Microsoft Windows Privilege Common Log File System (CLFS) Escalation Vulnerability",
144131
+ "lesson_date": "2026-09-23",
144132
+ "ai_discovered_zeroday": false,
144133
+ "ai_discovery_source": "human_researcher",
144134
+ "ai_discovery_date": null,
144135
+ "ai_assist_factor": "none",
144136
+ "attack_vector": {
144137
+ "description": "A local process abuses the way the Windows Common Log File System driver (clfs.sys) handles objects in memory to corrupt kernel state and escalate a low-privileged account to SYSTEM.",
144138
+ "privileges_required": "a local low-privileged account able to run code on the host",
144139
+ "complexity": "low to reach the driver, though no public exploit detailing the corruption primitive was found",
144140
+ "ai_factor": "none; credited to a human researcher with no AI tooling claimed"
144141
+ },
144142
+ "defense_chain": {
144143
+ "prevention": {
144144
+ "what_would_have_worked": "Applying the September 10, 2019 update for the running build (the Monthly Rollup KB4516065/KB4516026/KB4516067/KB4516055 or Security-Only KB4516033/KB4516051/KB4516064/KB4516062, or the Windows 10 cumulative updates KB4516070, KB4516044, KB4516068, KB4516066, KB4516058, KB4512578, KB4515384) and rebooting.",
144145
+ "was_this_required": true,
144146
+ "framework_requiring_it": "AU-Essential-8-Patch",
144147
+ "adequacy": "The update removes the flaw; because Microsoft's release-day active-attack flag was retracted and no public exploit followed, a routine patch cadence would have closed it well before CISA confirmed exploitation in 2021."
144148
+ },
144149
+ "detection": {
144150
+ "what_would_have_worked": "Alerting on heavy or anomalous use of the CLFS API by a non-logging process, on clfs.sys bugchecks, and on a local account reaching SYSTEM shortly after CLFS container activity.",
144151
+ "was_this_required": false,
144152
+ "framework_requiring_it": "UK-CAF-B4",
144153
+ "adequacy": "These are general heuristics; no public exploit was available to derive precise artifacts, so detection depends on broad kernel and process telemetry."
144154
+ },
144155
+ "response": {
144156
+ "what_would_have_worked": "Prioritizing patch deployment on multi-user hosts and confirming the running build on-host, then investigating any host where a low-privileged process reached SYSTEM.",
144157
+ "was_this_required": false,
144158
+ "framework_requiring_it": null,
144159
+ "adequacy": "Patching closes the flaw, but a host escalated before the update may already carry attacker persistence that patching alone does not remove."
144160
+ }
144161
+ },
144162
+ "framework_coverage": {
144163
+ "NIST-800-53-SI-2": {
144164
+ "covered": true,
144165
+ "adequate": true
144166
+ },
144167
+ "NIS2-Art21-patch-management": {
144168
+ "covered": true,
144169
+ "adequate": false
144170
+ },
144171
+ "UK-CAF-B4": {
144172
+ "covered": true,
144173
+ "adequate": false
144174
+ },
144175
+ "AU-Essential-8-Patch": {
144176
+ "covered": true,
144177
+ "adequate": true
144178
+ },
144179
+ "ISO-27001-2022-A.8.8": {
144180
+ "covered": true,
144181
+ "adequate": false
144182
+ }
144183
+ },
144184
+ "new_control_requirements": [
144185
+ {
144186
+ "id": "NEW-CTRL-001",
144187
+ "name": "CISA-KEV-RESPONSE-SLA",
144188
+ "description": "A KEV listing must trigger a fixed mitigation clock measured in hours, not the routine monthly patch cycle.",
144189
+ "evidence": "CVE-2019-1214 was added to CISA KEV on 2021-11-03 with a 2022-05-03 due date. Microsoft flagged it under active attack at the September 10, 2019 release, retracted that on September 11, 2019, and its current record marks it not exploited, so the KEV listing is the durable in-the-wild signal; a KEV-anchored clock forces the September 2019 update onto any host still unpatched once CISA established exploitation.",
144190
+ "gap_closes": [
144191
+ "NIST-800-53-SI-2",
144192
+ "ISO-27001-2022-A.8.8",
144193
+ "NIS2-Art21-patch-management",
144194
+ "AU-Essential-8-Patch"
144195
+ ]
144196
+ },
144197
+ {
144198
+ "id": "NEW-CTRL-145",
144199
+ "name": "ACTIVELY-EXPLOITED-OS-LPE-REMEDIATION-WINDOW-ENFORCEMENT",
144200
+ "description": "KEV designation of an operating-system privilege-escalation flaw starts a remediation clock that ends only when the fixing update is installed, the host has rebooted into it, and the running build is confirmed on the host itself; a staged-but-not-rebooted update does not stop the clock.",
144201
+ "evidence": "CVE-2019-1214 is a Windows CLFS-driver escalation to SYSTEM that CISA added to KEV on 2021-11-03; Microsoft's release-day active-attack flag was retracted the next day, so the KEV listing is the in-the-wild signal. The September 10, 2019 update requires a reboot, so a host that shows it staged but not rebooted stays exploitable and needs on-host verification of the running build.",
144202
+ "gap_closes": [
144203
+ "AU-Essential-8-Patch",
144204
+ "NIST-800-53-SI-2",
144205
+ "ISO-27001-2022-A.8.8",
144206
+ "UK-CAF-B4"
144207
+ ]
144208
+ }
144209
+ ]
144210
+ },
144211
+ "CVE-2020-0601": {
144212
+ "name": "Microsoft Windows CryptoAPI Spoofing Vulnerability",
144213
+ "lesson_date": "2026-09-23",
144214
+ "ai_discovered_zeroday": false,
144215
+ "ai_discovery_source": "human_researcher",
144216
+ "ai_discovery_date": null,
144217
+ "ai_assist_factor": "none",
144218
+ "attack_vector": {
144219
+ "description": "An attacker crafts an elliptic-curve certificate whose public key matches a trusted CryptoAPI root while supplying a chosen generator, so the platform accepts it as chaining to that root. The certificate then signs a malicious executable, which appears to come from a trusted publisher, or authenticates a TLS server, which lets the attacker read or alter the session.",
144220
+ "privileges_required": "none; the attacker needs only to present a certificate to the victim, by serving a signed file or terminating a TLS connection",
144221
+ "complexity": "low once the technique is known; public tools generate the spoofed certificate in a few OpenSSL steps",
144222
+ "ai_factor": "None. The National Security Agency reported the flaw; no AI tooling is claimed by any source."
144223
+ },
144224
+ "defense_chain": {
144225
+ "prevention": {
144226
+ "what_would_have_worked": "Installing the January 2020 cumulative update for the running Windows 10 or Windows Server 2016, 2019 or Server Core 1803, 1903 or 1909 release (for example KB4534273, KB4534293, KB4528760 or KB4534271), which corrects the ECC certificate validation, followed by the required reboot",
144227
+ "was_this_required": true,
144228
+ "framework_requiring_it": "AU-Essential-8-Patch",
144229
+ "adequacy": "The update fully removes the flaw. There is no configuration workaround, because the defect is in the platform validation routine itself, so patching is the only prevention."
144230
+ },
144231
+ "detection": {
144232
+ "what_would_have_worked": "Alerting on Application event log Event ID 1 from source Audit-CVE after patching, and inspecting certificates for explicit ECC parameters with a non-standard generator that still chain to a trusted root",
144233
+ "was_this_required": false,
144234
+ "framework_requiring_it": "ISO-27001-2022-A.8.24",
144235
+ "adequacy": "The Event ID fires only on patched hosts, so it detects attempts after the exposure is already closed; certificate inspection can catch the spoof earlier but requires trust-chain analysis that few endpoints perform."
144236
+ },
144237
+ "response": {
144238
+ "what_would_have_worked": "Treating any executable or TLS session validated before patching as untrusted, and revalidating code-signing and transport-security decisions once the update is installed",
144239
+ "was_this_required": false,
144240
+ "framework_requiring_it": "NIST-800-53-SC-8",
144241
+ "adequacy": "Because the flaw undermines the trust decision rather than a single asset, response has to reconsider everything the platform validated while unpatched, which is broad and often impractical after the fact."
144242
+ }
144243
+ },
144244
+ "framework_coverage": {
144245
+ "NIST-800-53-SC-8": {
144246
+ "covered": true,
144247
+ "adequate": false,
144248
+ "gap": "SC-8 assumes certificate validation works; here the platform validates a forged ECC certificate, so a TLS session it treats as protected can be read or altered."
144249
+ },
144250
+ "NIS2-Art21-network-security": {
144251
+ "covered": true,
144252
+ "adequate": false,
144253
+ "gap": "The obligation has no working authentication or transport control to attest to while the platform trusts a spoofed certificate."
144254
+ },
144255
+ "UK-CAF-B4": {
144256
+ "covered": true,
144257
+ "adequate": false,
144258
+ "gap": "A B4 review records TLS and code-signing controls as present while the validation code beneath them is defective, and no configuration setting closes the gap before the update."
144259
+ },
144260
+ "AU-Essential-8-Patch": {
144261
+ "covered": true,
144262
+ "adequate": false,
144263
+ "gap": "A workstation or internal-server fleet below Maturity Level Three had a one-month window against a flaw for which working exploit code was public the day after the fix."
144264
+ },
144265
+ "ISO-27001-2022-A.8.24": {
144266
+ "covered": true,
144267
+ "adequate": false,
144268
+ "gap": "An A.8.24 control set that mandates cryptography cannot detect that the platform's own trust decision is forged until the update is applied."
144269
+ }
144270
+ },
144271
+ "new_control_requirements": [
144272
+ {
144273
+ "id": "NEW-CTRL-008",
144274
+ "name": "CRYPTO-SUBSYSTEM-CVE-DISCLOSURE",
144275
+ "description": "When a flaw affects the platform component that validates certificates or implements a cryptographic protocol, every control that depends on that component for trust or transport protection is recorded as not compensating until the fix is running.",
144276
+ "evidence": "CVE-2020-0601 is in Windows CryptoAPI (Crypt32.dll) elliptic-curve certificate validation, so while a Windows 10 or Server 2016 and 2019 host is unpatched, TLS server authentication and code-signing trust cannot be counted as compensating controls; CISA advisory AA20-014A states the fix ensures CryptoAPI completely validates ECC certificates.",
144277
+ "gap_closes": [
144278
+ "NIST-800-53-SC-8",
144279
+ "NIS2-Art21-network-security",
144280
+ "ISO-27001-2022-A.8.24"
144281
+ ]
144282
+ },
144283
+ {
144284
+ "id": "NEW-CTRL-132",
144285
+ "name": "INDEPENDENT-INTEGRITY-VERIFICATION-OF-SIGNED-VENDOR-INSTALLERS",
144286
+ "description": "A valid code signature is not treated as proof of artifact integrity; software installed from a vendor is verified against an integrity source independent of the channel that delivered it before it runs.",
144287
+ "evidence": "CVE-2020-0601 lets an attacker forge a code-signing certificate that chains to a trusted Microsoft ECC root, so an executable appears signed by a legitimate publisher; verifying an installer against a published per-release hash from a separate channel defeats a signature that only looks trusted.",
144288
+ "gap_closes": [
144289
+ "UK-CAF-B4"
144290
+ ]
144291
+ },
144292
+ {
144293
+ "id": "NEW-CTRL-001",
144294
+ "name": "CISA-KEV-RESPONSE-SLA",
144295
+ "description": "A vulnerability listed in the Known Exploited Vulnerabilities catalog is remediated on an hours-scale mitigation clock rather than the routine monthly patch cycle.",
144296
+ "evidence": "CVE-2020-0601 was added to the KEV catalog on 2021-11-03, and public exploit code (ly4k/CurveBall, kudelskisecurity/chainoffools) had been available since 2020-01-15; a workstation fleet on the Essential Eight one-month window below Maturity Level Three is far slower than the exploit availability warrants.",
144297
+ "gap_closes": [
144298
+ "AU-Essential-8-Patch",
144299
+ "UK-CAF-B4"
144300
+ ]
144301
+ }
144302
+ ]
144303
+ },
144304
+ "CVE-2020-0986": {
144305
+ "name": "Microsoft Windows Kernel Privilege Escalation Vulnerability",
144306
+ "lesson_date": "2026-09-23",
144307
+ "ai_discovered_zeroday": false,
144308
+ "ai_discovery_source": "human_researcher",
144309
+ "ai_discovery_date": null,
144310
+ "ai_assist_factor": "none",
144311
+ "attack_vector": {
144312
+ "description": "From a low-integrity process, such as a sandboxed Internet Explorer renderer, the attacker connects to the local procedure call port of the medium-integrity splwow64.exe print host and sends a crafted request that makes it dereference an attacker-controlled pointer and write to its memory. This escalates out of the browser sandbox into the more privileged print host, from which a payload runs.",
144313
+ "privileges_required": "low; the attacker already holds low-integrity code execution, typically from a browser exploit, and uses this flaw to escalate",
144314
+ "complexity": "low to moderate; the technique was used in the wild chained after an Internet Explorer bug",
144315
+ "ai_factor": "None. Reported through the Zero Day Initiative and found in the wild by Kaspersky; no AI tooling is claimed."
144316
+ },
144317
+ "defense_chain": {
144318
+ "prevention": {
144319
+ "what_would_have_worked": "Applying the June 2020 update and rebooting, and then the January 2021 update (CVE-2021-1648) that corrects the incomplete June fix (for example KB4598230 for 1809 and Server 2019 or KB4598229 for 1909); Windows 10 1709 and 1903, and Windows Server, version 1803 and 1903 (Server Core installation), received no corrected update and must be upgraded",
144320
+ "was_this_required": true,
144321
+ "framework_requiring_it": "AU-Essential-8-Patch",
144322
+ "adequacy": "The June update alone did not remove the primitive; only the January 2021 CVE-2021-1648 update closes it, and no corrected update shipped for Windows 10 1709 or 1903 or for Windows Server, version 1803 or 1903, so a program that stopped at June left the write reachable."
144323
+ },
144324
+ "detection": {
144325
+ "what_would_have_worked": "Alerting when splwow64.exe spawns a child process or runs PowerShell, when any low-integrity process connects to the splwow64 local procedure call port, and when an Internet Explorer process writes ok.exe to a temporary folder and runs it",
144326
+ "was_this_required": false,
144327
+ "framework_requiring_it": "NIST-800-53-SC-39",
144328
+ "adequacy": "These are reliable signals but require process-lineage and inter-process-communication telemetry that many endpoints do not collect; the endpoint verdict PDM:Exploit.Win32.Generic caught the observed attack."
144329
+ },
144330
+ "response": {
144331
+ "what_would_have_worked": "Treating a host that ran the observed components (CreateDC.exe, PoPc.dll) or reached www[.]static-cdn1[.]com as compromised and reimaging it, and rotating credentials exposed to the escalated process",
144332
+ "was_this_required": false,
144333
+ "framework_requiring_it": "NIS2-Art21-vulnerability-management",
144334
+ "adequacy": "Response is complicated by the incomplete fix: a host patched only with the June update is still exposed to the same primitive, so remediation must confirm the January 2021 CVE-2021-1648 update is present, or that an unserviced Windows 10 1709 or 1903 or Windows Server, version 1803 or 1903 host has been upgraded."
144335
+ }
144336
+ },
144337
+ "framework_coverage": {
144338
+ "NIST-800-53-SC-39": {
144339
+ "covered": true,
144340
+ "adequate": false,
144341
+ "gap": "The flaw bypasses the process-integrity boundary by making a higher-integrity print host write attacker-controlled memory on request."
144342
+ },
144343
+ "NIS2-Art21-vulnerability-management": {
144344
+ "covered": true,
144345
+ "adequate": false,
144346
+ "gap": "An entity that recorded the item remediated on the incomplete June update left its residual risk unaccounted for until the January 2021 CVE-2021-1648 fix, which never shipped for 1709 or 1903."
144347
+ },
144348
+ "UK-CAF-B4": {
144349
+ "covered": true,
144350
+ "adequate": false,
144351
+ "gap": "A B4 review that treated the June update as remediation missed that the write survived until the January 2021 CVE-2021-1648 update."
144352
+ },
144353
+ "AU-Essential-8-Patch": {
144354
+ "covered": true,
144355
+ "adequate": false,
144356
+ "gap": "The flaw was exploited before the June fix, and that fix was incomplete, so meeting any window on the June update still left the primitive reachable until January 2021."
144357
+ },
144358
+ "ISO-27001-2022-A.8.8": {
144359
+ "covered": true,
144360
+ "adequate": false,
144361
+ "gap": "An A.8.8 program that closed the item on the June update recorded remediation for a flaw that stayed reachable until January 2021, and not at all on 1709 and 1903."
144362
+ }
144363
+ },
144364
+ "new_control_requirements": [
144365
+ {
144366
+ "id": "NEW-CTRL-042",
144367
+ "name": "INCOMPLETE-PATCH-SEQUENCE-SEVERITY-MULTIPLIER",
144368
+ "description": "A vulnerability-management program applies a severity multiplier and re-opens the item when a flaw is the next in an incomplete-fix sequence on the same primitive, treating the sequence as evidence the underlying defect is not yet understood.",
144369
+ "evidence": "CVE-2020-0986 was a trivial variant of the earlier CVE-2019-0880 splwow64 GDI print primitive, and its own June 2020 fix was incomplete, corrected only in January 2021 as CVE-2021-1648 and never for Windows 10 1709 or 1903, so a program should have re-opened the item rather than treating the June update as terminal.",
144370
+ "gap_closes": [
144371
+ "ISO-27001-2022-A.8.8",
144372
+ "NIS2-Art21-vulnerability-management",
144373
+ "AU-Essential-8-Patch"
144374
+ ]
144375
+ },
144376
+ {
144377
+ "id": "NEW-CTRL-017",
144378
+ "name": "BUG-FAMILY-MITIGATION-PERSISTENCE",
144379
+ "description": "Interim compensating measures adopted while a flaw in a recurring bug class is unpatched stay in force for a stated period after the fix ships, because sibling defects of the same class can remain in the patched code.",
144380
+ "evidence": "CVE-2020-0986 recurred through CVE-2019-0880 and, after its incomplete June 2020 fix, CVE-2021-1648 in the same splwow64 GdiPrinterThunk code, so any compensating control on that inter-process path should have persisted past the June 2020 fix, which itself proved incomplete.",
144381
+ "gap_closes": [
144382
+ "UK-CAF-B4",
144383
+ "NIS2-Art21-vulnerability-management"
144384
+ ]
144385
+ }
144386
+ ]
144387
+ },
144388
+ "CVE-2020-6819": {
144389
+ "name": "Mozilla Firefox And Thunderbird Use-After-Free Vulnerability (CVE-2020-6819)",
144390
+ "lesson_date": "2026-09-23",
144391
+ "ai_discovered_zeroday": false,
144392
+ "ai_discovery_source": "human_researcher",
144393
+ "ai_discovery_date": null,
144394
+ "ai_assist_factor": "none",
144395
+ "attack_vector": {
144396
+ "description": "Web content rendered by Firefox or Thunderbird triggers a race condition in the nsDocShell destructor, causing a use-after-free as the document shell is torn down and enabling code execution in a browser or browser-like context.",
144397
+ "privileges_required": "None beyond rendering attacker-controlled web content in an affected build.",
144398
+ "complexity": "High; the vector is a race condition, reflected in the high attack-complexity rating, though it was used in targeted attacks.",
144399
+ "ai_factor": "Not AI-discovered; credited to Francisco Alonso working with Javier Marcos of JMPSec, with no AI tooling claimed."
144400
+ },
144401
+ "defense_chain": {
144402
+ "prevention": {
144403
+ "what_would_have_worked": "Deploying the Firefox 74.0.1, ESR 68.6.1 and Thunderbird 68.7.0 builds as an emergency release, and keeping untrusted web content away from the affected builds until then.",
144404
+ "was_this_required": false,
144405
+ "framework_requiring_it": "AU-Essential-8-Patch",
144406
+ "adequacy": "The build removes the vulnerable destructor path, but because the flaw was under attack before it shipped, the update limited rather than prevented the earliest exposure."
144407
+ },
144408
+ "detection": {
144409
+ "what_would_have_worked": "Collecting browser and mail content-process crash reports and alerting on a crash whose crashing frame is nsDocShell::SynchronizeLayoutHistoryState, with the nsDocShell destructor further down the stack.",
144410
+ "was_this_required": false,
144411
+ "framework_requiring_it": "UK-CAF-B4",
144412
+ "adequacy": "This is a heuristic that catches failed or unstable attempts only; a successful exploit may leave no crash, and the signal appears only where content-process crash reports are collected."
144413
+ },
144414
+ "response": {
144415
+ "what_would_have_worked": "Treating a confirmed hit as a targeted intrusion, isolating the endpoint and updating the affected build rather than dismissing the crash.",
144416
+ "was_this_required": false,
144417
+ "framework_requiring_it": "NIS2-Art21-patch-management",
144418
+ "adequacy": "Isolation and update address the endpoint but depend on recognizing the crash as exploitation rather than instability."
144419
+ }
144420
+ },
144421
+ "framework_coverage": {
144422
+ "NIST-800-53-SI-2": {
144423
+ "covered": true,
144424
+ "adequate": false
144425
+ },
144426
+ "NIS2-Art21-patch-management": {
144427
+ "covered": true,
144428
+ "adequate": false
144429
+ },
144430
+ "UK-CAF-B4": {
144431
+ "covered": true,
144432
+ "adequate": false
144433
+ },
144434
+ "AU-Essential-8-Patch": {
144435
+ "covered": true,
144436
+ "adequate": false
144437
+ },
144438
+ "ISO-27001-2022-A.8.8": {
144439
+ "covered": true,
144440
+ "adequate": false
144441
+ }
144442
+ },
144443
+ "new_control_requirements": [
144444
+ {
144445
+ "id": "NEW-CTRL-001",
144446
+ "name": "CISA-KEV-RESPONSE-SLA",
144447
+ "description": "A vulnerability listed on the CISA Known Exploited Vulnerabilities catalog is mitigated or patched on an incident clock measured in hours, separate from the routine patch schedule.",
144448
+ "evidence": "CVE-2020-6819 was placed on the CISA KEV list with a 2022-05-03 due date; Mozilla had already shipped Firefox 74.0.1, ESR 68.6.1 and Thunderbird 68.7.0 in April 2020 while the nsDocShell use-after-free was under targeted attack, so the action that meets an hours-scale clock is deploying that build.",
144449
+ "gap_closes": [
144450
+ "NIST-800-53-SI-2",
144451
+ "NIS2-Art21-patch-management",
144452
+ "UK-CAF-B4"
144453
+ ]
144454
+ },
144455
+ {
144456
+ "id": "NEW-CTRL-057",
144457
+ "name": "BROWSER-MANAGED-UPDATE-NO-DEFERRAL",
144458
+ "description": "Security releases of web browsers and email clients reach every managed endpoint without the deferral applied to feature updates, and the installed client version is inventoried separately from the operating-system patch level.",
144459
+ "evidence": "The fixed builds for CVE-2020-6819 were Firefox 74.0.1, ESR 68.6.1 and Thunderbird 68.7.0; an update ring that defers a security-channel Mozilla release, or a policy that lets a secondary Firefox ESR or Thunderbird lag, keeps the actively exploited build on endpoints.",
144460
+ "gap_closes": [
144461
+ "NIST-800-53-SI-2",
144462
+ "AU-Essential-8-Patch",
144463
+ "ISO-27001-2022-A.8.8"
144464
+ ]
144465
+ }
144466
+ ]
144467
+ },
144468
+ "CVE-2020-6820": {
144469
+ "name": "Mozilla Firefox And Thunderbird Use-After-Free Vulnerability (CVE-2020-6820)",
144470
+ "lesson_date": "2026-09-23",
144471
+ "ai_discovered_zeroday": false,
144472
+ "ai_discovery_source": "human_researcher",
144473
+ "ai_discovery_date": null,
144474
+ "ai_assist_factor": "none",
144475
+ "attack_vector": {
144476
+ "description": "Code already running in a compromised Firefox or Thunderbird content process, which the documented chain obtained through CVE-2020-6819, triggers a race condition while a ReadableStream is handled, freeing the Cache API's CacheStreamControlParent object in the parent (browser) process; the resulting use-after-free there is the sandbox escape.",
144477
+ "privileges_required": "Code execution in a Firefox or Thunderbird content process, which the documented chain obtained through CVE-2020-6819.",
144478
+ "complexity": "High; the vector is a race condition, reflected in the high attack-complexity rating, though it was used in targeted attacks.",
144479
+ "ai_factor": "Not AI-discovered; credited to Francisco Alonso working with Javier Marcos of JMPSec, with no AI tooling claimed."
144480
+ },
144481
+ "defense_chain": {
144482
+ "prevention": {
144483
+ "what_would_have_worked": "Deploying the Firefox 74.0.1, ESR 68.6.1 and Thunderbird 68.7.0 builds, which fix both this sandbox escape and CVE-2020-6819, as an emergency release, and keeping untrusted web content away from the affected builds until then.",
144484
+ "was_this_required": false,
144485
+ "framework_requiring_it": "AU-Essential-8-Patch",
144486
+ "adequacy": "The build removes both stages of the documented chain; because the chain was used in targeted attacks before the build shipped, the update limited the exposure rather than preventing the earliest attacks."
144487
+ },
144488
+ "detection": {
144489
+ "what_would_have_worked": "Collecting browser crash reports and alerting on a parent (browser) process crash on its IPDL Background thread whose crashing frame is in the DOM Cache IPC code, such as PCacheStreamControlParent::SendCloseAll.",
144490
+ "was_this_required": false,
144491
+ "framework_requiring_it": "UK-CAF-B4",
144492
+ "adequacy": "This is a heuristic that catches failed or unstable attempts only; a successful sandbox escape may leave no crash, and the signal appears only where browser-process crash reports are collected."
144493
+ },
144494
+ "response": {
144495
+ "what_would_have_worked": "Treating a confirmed hit as a targeted intrusion in which the browser sandbox was escaped, isolating the endpoint and updating the build rather than dismissing the crash.",
144496
+ "was_this_required": false,
144497
+ "framework_requiring_it": "ISO-27001-2022-A.8.8",
144498
+ "adequacy": "Isolation and update address the endpoint but depend on recognizing the crash as exploitation rather than instability."
144499
+ }
144500
+ },
144501
+ "framework_coverage": {
144502
+ "NIST-800-53-SI-2": {
144503
+ "covered": true,
144504
+ "adequate": false
144505
+ },
144506
+ "NIS2-Art21-vulnerability-handling": {
144507
+ "covered": true,
144508
+ "adequate": false
144509
+ },
144510
+ "UK-CAF-B4": {
144511
+ "covered": true,
144512
+ "adequate": false
144513
+ },
144514
+ "AU-Essential-8-Patch": {
144515
+ "covered": true,
144516
+ "adequate": false
144517
+ },
144518
+ "ISO-27001-2022-A.8.8": {
144519
+ "covered": true,
144520
+ "adequate": false
144521
+ }
144522
+ },
144523
+ "new_control_requirements": [
144524
+ {
144525
+ "id": "NEW-CTRL-001",
144526
+ "name": "CISA-KEV-RESPONSE-SLA",
144527
+ "description": "A vulnerability listed on the CISA Known Exploited Vulnerabilities catalog is mitigated or patched on an incident clock measured in hours, separate from the routine patch schedule.",
144528
+ "evidence": "CVE-2020-6820 was added to the CISA KEV list with a 2022-05-03 due date; Mozilla had shipped Firefox 74.0.1, ESR 68.6.1 and Thunderbird 68.7.0 in April 2020 while the ReadableStream use-after-free was under targeted attack, so meeting an hours-scale clock means deploying that build.",
144529
+ "gap_closes": [
144530
+ "NIST-800-53-SI-2",
144531
+ "NIS2-Art21-vulnerability-handling"
144532
+ ]
144533
+ },
144534
+ {
144535
+ "id": "NEW-CTRL-057",
144536
+ "name": "BROWSER-MANAGED-UPDATE-NO-DEFERRAL",
144537
+ "description": "Security releases of web browsers and email clients reach every managed endpoint without the deferral applied to feature updates, and the installed client version is inventoried separately from the operating-system patch level.",
144538
+ "evidence": "The fixed builds for CVE-2020-6820 were Firefox 74.0.1, ESR 68.6.1 and Thunderbird 68.7.0; a managed update ring that defers a security-channel Mozilla release leaves the actively exploited build live on endpoints.",
144539
+ "gap_closes": [
144540
+ "NIST-800-53-SI-2",
144541
+ "AU-Essential-8-Patch"
144542
+ ]
144543
+ }
144544
+ ]
144545
+ },
144546
+ "CVE-2019-15949": {
144547
+ "name": "Nagios XI Remote Code Execution Vulnerability",
144548
+ "lesson_date": "2026-09-23",
144549
+ "ai_discovered_zeroday": false,
144550
+ "ai_discovery_source": "human_researcher",
144551
+ "ai_discovery_date": null,
144552
+ "ai_assist_factor": "none",
144553
+ "attack_vector": {
144554
+ "description": "An authenticated user with plugin-modification rights, or the nagios operating-system account, replaces the monitoring plugin that getprofile.sh executes (check_ping in both public exploits; NVD calls it check_plugin); when a system profile is downloaded, getprofile.sh runs that plugin as root through a passwordless sudo entry, so the injected commands run as root.",
144555
+ "privileges_required": "Low; either a Nagios XI web account with plugin-modification rights or shell access as the nagios user.",
144556
+ "complexity": "Low; the upload-and-trigger steps are deterministic once access is held.",
144557
+ "ai_factor": "Not AI-discovered; credited to Jak Gibb, with no AI tooling claimed."
144558
+ },
144559
+ "defense_chain": {
144560
+ "prevention": {
144561
+ "what_would_have_worked": "Upgrading to Nagios XI 5.6.6, and independently removing the passwordless sudo entry that runs getprofile.sh as root while restricting plugin-modification rights.",
144562
+ "was_this_required": false,
144563
+ "framework_requiring_it": "AU-Essential-8-Patch",
144564
+ "adequacy": "The upgrade closes the path; the sudo and plugin-rights hardening is a compensating measure available both before the upgrade and afterward."
144565
+ },
144566
+ "detection": {
144567
+ "what_would_have_worked": "Alerting when check_ping or another plugin that getprofile.sh executes is modified outside a legitimate plugin deployment, and when getprofile.sh spawns an unexpected child as root.",
144568
+ "was_this_required": false,
144569
+ "framework_requiring_it": "ISO-27001-2022-A.8.8",
144570
+ "adequacy": "File-integrity and process alerts are reliable but require monitoring on the server, which a monitoring appliance is often not itself subject to."
144571
+ },
144572
+ "response": {
144573
+ "what_would_have_worked": "Rotating credentials reachable from the compromised Nagios XI host and rebuilding it, given root was obtained, rather than only upgrading the package.",
144574
+ "was_this_required": false,
144575
+ "framework_requiring_it": "NIST-800-53-AC-6",
144576
+ "adequacy": "Rebuild and rotation address a root-level compromise; a package upgrade alone restores the fixed version but not trust in a host that ran attacker code as root."
144577
+ }
144578
+ },
144579
+ "framework_coverage": {
144580
+ "NIST-800-53-AC-6": {
144581
+ "covered": true,
144582
+ "adequate": false
144583
+ },
144584
+ "NIS2-Art21-network-security": {
144585
+ "covered": true,
144586
+ "adequate": false
144587
+ },
144588
+ "UK-CAF-B4": {
144589
+ "covered": true,
144590
+ "adequate": false
144591
+ },
144592
+ "AU-Essential-8-Patch": {
144593
+ "covered": true,
144594
+ "adequate": false
144595
+ },
144596
+ "ISO-27001-2022-A.8.8": {
144597
+ "covered": true,
144598
+ "adequate": false
144599
+ }
144600
+ },
144601
+ "new_control_requirements": [
144602
+ {
144603
+ "id": "NEW-CTRL-135",
144604
+ "name": "CONTROL-PANEL-PLUGIN-USER-SURFACE-MUST-NOT-REACH-ROOT-OPERATIONS",
144605
+ "description": "A file that an unprivileged account or an application user can change is never run by a process holding root or administrative rights, and helper scripts that run through sudo execute only files that root owns and only root can write.",
144606
+ "evidence": "On Nagios XI before 5.6.6 a plugin operator or the nagios account can rewrite the monitoring plugin that getprofile.sh runs as root via passwordless sudo (check_ping in both public exploits; NVD calls it check_plugin), so a user-facing plugin function reaches root; the fix in 5.6.6 and removing that sudo path keep the privileged operation behind its own boundary.",
144607
+ "gap_closes": [
144608
+ "NIST-800-53-AC-6",
144609
+ "UK-CAF-B4",
144610
+ "NIS2-Art21-network-security"
144611
+ ]
144612
+ },
144613
+ {
144614
+ "id": "NEW-CTRL-001",
144615
+ "name": "CISA-KEV-RESPONSE-SLA",
144616
+ "description": "A vulnerability listed on the CISA Known Exploited Vulnerabilities catalog is mitigated or patched on an incident clock measured in hours, separate from the routine patch schedule.",
144617
+ "evidence": "CVE-2019-15949 was on the CISA KEV list with a 2022-05-03 due date while the fix, Nagios XI 5.6.6, had been available since August 2019 with a public exploit and a Metasploit module, so an hours-scale mitigation clock means upgrading or removing the passwordless sudo entry, not waiting for a routine cycle.",
144618
+ "gap_closes": [
144619
+ "AU-Essential-8-Patch",
144620
+ "ISO-27001-2022-A.8.8"
144621
+ ]
144622
+ }
144623
+ ]
144624
+ },
144625
+ "CVE-2020-14882": {
144626
+ "name": "Oracle WebLogic Server Remote Code Execution Vulnerability (CVE-2020-14882)",
144627
+ "lesson_date": "2026-09-23",
144628
+ "ai_discovered_zeroday": false,
144629
+ "ai_discovery_source": "human_researcher",
144630
+ "ai_discovery_date": null,
144631
+ "ai_assist_factor": "none",
144632
+ "attack_vector": {
144633
+ "description": "A double-encoded path-traversal request (%252e%252e%252f) to the WebLogic administration console reaches console.portal behind its authentication filter and instantiates an attacker-named Java class through the handle parameter, giving remote code execution with the WebLogic process's privileges.",
144634
+ "privileges_required": "none; the request is unauthenticated and needs only HTTP access to the administration console",
144635
+ "complexity": "low; a single crafted request confirms and exploits the flaw, and public scanning reached all IPv4 space within days",
144636
+ "ai_factor": "None. Credited to outside human researchers; no AI tooling claimed."
144637
+ },
144638
+ "defense_chain": {
144639
+ "prevention": {
144640
+ "what_would_have_worked": "Restricting the administration console to a trusted management network and applying the 2020-11-01 Security Alert for CVE-2020-14750 (My Oracle Support Note 2724951.1) with a server restart, since the October 2020 update for this flaw was bypassed and only the Security Alert closes the traversal",
144641
+ "was_this_required": true,
144642
+ "framework_requiring_it": "AU-Essential-8-Patch",
144643
+ "adequacy": "Network restriction removes the unauthenticated reach and the Security Alert removes the traversal. The ISM-1876 online-service window required the patch, but it runs from each release, so applying the October update inside its 48-hour window still left the console exposed until the 2020-11-01 alert."
144644
+ },
144645
+ "detection": {
144646
+ "what_would_have_worked": "Alerting on console.portal requests reached through any encoded ../ traversal under /console/, in any case, and on the WebLogic process spawning a shell, matching the handle parameter against ShellSession, ClassPathXmlApplicationContext or FileSystemXmlApplicationContext rather than a single fixed string",
144647
+ "was_this_required": false,
144648
+ "framework_requiring_it": "NIST-800-53-AC-3",
144649
+ "adequacy": "The signals are reliable and stable, but they require request and process inspection in front of a console that many deployments expose directly on port 7001."
144650
+ },
144651
+ "response": {
144652
+ "what_would_have_worked": "Treating a confirmed hit as a server compromise, capturing evidence, then rebuilding the WebLogic host and rotating any credentials the process held",
144653
+ "was_this_required": false,
144654
+ "framework_requiring_it": "NIS2-Art21-vulnerability-management",
144655
+ "adequacy": "SANS advised assuming compromise for any vulnerable server found, so a restart-and-patch response alone leaves any planted access in place."
144656
+ }
144657
+ },
144658
+ "framework_coverage": {
144659
+ "NIST-800-53-AC-3": {
144660
+ "covered": true,
144661
+ "adequate": false
144662
+ },
144663
+ "NIS2-Art21-vulnerability-management": {
144664
+ "covered": true,
144665
+ "adequate": false
144666
+ },
144667
+ "UK-CAF-B2": {
144668
+ "covered": true,
144669
+ "adequate": false
144670
+ },
144671
+ "ISO-27001-2022-A.5.15": {
144672
+ "covered": true,
144673
+ "adequate": false
144674
+ },
144675
+ "AU-ISM-1546": {
144676
+ "covered": true,
144677
+ "adequate": false
144678
+ },
144679
+ "AU-Essential-8-Patch": {
144680
+ "covered": true,
144681
+ "adequate": false
144682
+ }
144683
+ },
144684
+ "new_control_requirements": [
144685
+ {
144686
+ "id": "NEW-CTRL-129",
144687
+ "name": "ENTERPRISE-ERP-MANAGEMENT-FUNCTION-AUTHENTICATION",
144688
+ "description": "An enterprise application server must authenticate the caller on every request path to a takeover-capable management function before it acts, including alternate and traversal-reachable paths, and must not leave any such function reachable by an unauthenticated network caller.",
144689
+ "evidence": "For CVE-2020-14882 in Oracle WebLogic Server, a double-encoded traversal to /console/images/%252e%252e%252fconsole.portal reaches an administrative handler behind the console authentication filter, so the takeover path answers an unauthenticated caller, and the traversal is closed by the 2020-11-01 Security Alert for CVE-2020-14750 (My Oracle Support Note 2724951.1) after the October 2020 update for it was bypassed.",
144690
+ "gap_closes": [
144691
+ "NIST-800-53-AC-3",
144692
+ "UK-CAF-B2",
144693
+ "ISO-27001-2022-A.5.15",
144694
+ "AU-ISM-1546"
144695
+ ]
144696
+ }
144697
+ ]
144698
+ },
144699
+ "CVE-2020-14883": {
144700
+ "name": "Oracle WebLogic Server Unspecified Vulnerability",
144701
+ "lesson_date": "2026-09-23",
144702
+ "ai_discovered_zeroday": false,
144703
+ "ai_discovery_source": "human_researcher",
144704
+ "ai_discovery_date": null,
144705
+ "ai_assist_factor": "none",
144706
+ "attack_vector": {
144707
+ "description": "A request to the WebLogic administration console at console.portal invokes com.tangosol.coherence.mvel2.sh.ShellSession against the current ExecuteThread and runs an operating system command; chained with the CVE-2020-14882 traversal the command path is reached without authentication.",
144708
+ "privileges_required": "high on its own per Oracle's rating, but none in the chain with CVE-2020-14882",
144709
+ "complexity": "low; a single request confirms and exploits the flaw when the console is reachable",
144710
+ "ai_factor": "None. Credited to outside human researchers; no AI tooling claimed."
144711
+ },
144712
+ "defense_chain": {
144713
+ "prevention": {
144714
+ "what_would_have_worked": "Confining the administration console to a trusted management network and applying the October 2020 Critical Patch Update together with the 2020-11-01 Security Alert for CVE-2020-14750, which closes the unauthenticated chain the October fix left bypassable",
144715
+ "was_this_required": true,
144716
+ "framework_requiring_it": "AU-Essential-8-Patch",
144717
+ "adequacy": "Network confinement removes the exposure, and the Security Alert closes the chain the October update alone left open. A program that prioritizes by the standalone high-privilege score can defer the fix past the window the chained, KEV-listed flaw falls under."
144718
+ },
144719
+ "detection": {
144720
+ "what_would_have_worked": "Alerting on console.portal requests of either method whose handle or test_handle names a Java class such as ShellSession, ClassPathXmlApplicationContext or FileSystemXmlApplicationContext, matched case- and encoding-insensitively, and on the WebLogic process spawning a shell",
144721
+ "was_this_required": false,
144722
+ "framework_requiring_it": "UK-CAF-C1",
144723
+ "adequacy": "The request signature is distinctive across methods, but it is not a monitored event where the console is reached directly on port 7001 without request inspection."
144724
+ },
144725
+ "response": {
144726
+ "what_would_have_worked": "Capturing evidence, then rebuilding the WebLogic host and rotating the credentials the process held rather than only restarting the service",
144727
+ "was_this_required": false,
144728
+ "framework_requiring_it": "NIS2-Art21-patch-management",
144729
+ "adequacy": "A service restart restores availability but leaves any code the command gadget planted and any stolen credential in place."
144730
+ }
144731
+ },
144732
+ "framework_coverage": {
144733
+ "NIST-800-53-CM-7": {
144734
+ "covered": true,
144735
+ "adequate": false
144736
+ },
144737
+ "NIS2-Art21-patch-management": {
144738
+ "covered": true,
144739
+ "adequate": false
144740
+ },
144741
+ "UK-CAF-C1": {
144742
+ "covered": true,
144743
+ "adequate": false
144744
+ },
144745
+ "ISO-27001-2022-A.8.21": {
144746
+ "covered": true,
144747
+ "adequate": false
144748
+ },
144749
+ "AU-Essential-8-Patch": {
144750
+ "covered": true,
144751
+ "adequate": false
144752
+ }
144753
+ },
144754
+ "new_control_requirements": [
144755
+ {
144756
+ "id": "NEW-CTRL-128",
144757
+ "name": "APPSERVER-REMOTING-PROTOCOL-RESTRICTION",
144758
+ "description": "Application servers that expose a network-reachable administration console or binary remoting interface must restrict those interfaces to trusted hosts and apply the vendor's critical patch bundle on an accelerated clock, with a server restart taken, when a flaw in them is listed as exploited.",
144759
+ "evidence": "For CVE-2020-14883 in Oracle WebLogic Server, the administration console command gadget is reachable over HTTP on the default port 7001, and the October 2020 Critical Patch Update with the 2020-11-01 Security Alert for CVE-2020-14750 closes it; confining the console to a management network and taking the updates rather than deferring to the next quarterly window is the remedy.",
144760
+ "gap_closes": [
144761
+ "NIST-800-53-CM-7",
144762
+ "ISO-27001-2022-A.8.21",
144763
+ "AU-Essential-8-Patch"
144764
+ ]
144765
+ }
144766
+ ]
144767
+ },
144768
+ "CVE-2020-14750": {
144769
+ "name": "Oracle WebLogic Server Remote Code Execution Vulnerability (CVE-2020-14750)",
144770
+ "lesson_date": "2026-09-23",
144771
+ "ai_discovered_zeroday": false,
144772
+ "ai_discovery_source": "human_researcher",
144773
+ "ai_discovery_date": null,
144774
+ "ai_assist_factor": "none",
144775
+ "attack_vector": {
144776
+ "description": "A path-traversal request to console.portal that re-encodes or changes the case of the ../ segment to evade the case-sensitive blocklist the October 2020 update added invokes a ShellSession gadget that reads a request header and runs it as an operating system command, giving unauthenticated remote code execution.",
144777
+ "privileges_required": "none; the request is unauthenticated and needs only HTTP access to the administration console",
144778
+ "complexity": "low; a single crafted request confirms and exploits the flaw, and public exploit code was published on multiple sites",
144779
+ "ai_factor": "None. Credited to outside human researchers; no AI tooling claimed."
144780
+ },
144781
+ "defense_chain": {
144782
+ "prevention": {
144783
+ "what_would_have_worked": "Applying the Security Alert CVE-2020-14750 patch rather than treating the October 2020 update as complete, and restricting the console to a trusted management network in the interim",
144784
+ "was_this_required": true,
144785
+ "framework_requiring_it": "AU-Essential-8-Patch",
144786
+ "adequacy": "The Security Alert patch removes the bypass and network restriction removes the reach, but an operator who recorded the October update as done would not apply the alert without a control that reopens a defeated fix."
144787
+ },
144788
+ "detection": {
144789
+ "what_would_have_worked": "Alerting on console.portal requests reached through any encoded ../ traversal, matched case-insensitively across encodings, on requests whose handle parameter names com.tangosol.coherence.mvel2.sh.ShellSession, and on the WebLogic process spawning a shell",
144790
+ "was_this_required": false,
144791
+ "framework_requiring_it": "NIS2-Art21-network-security",
144792
+ "adequacy": "The bypass request is distinctive, but detecting it requires request inspection in front of a console many deployments expose directly."
144793
+ },
144794
+ "response": {
144795
+ "what_would_have_worked": "Assuming compromise on a confirmed hit, capturing evidence, then rebuilding the host and rotating the credentials the WebLogic process held",
144796
+ "was_this_required": false,
144797
+ "framework_requiring_it": "UK-CAF-B4",
144798
+ "adequacy": "Applying the alert patch closes the hole but does not evict access gained while the bypass was live, so response must include a compromise assessment."
144799
+ }
144800
+ },
144801
+ "framework_coverage": {
144802
+ "NIST-800-53-SI-2": {
144803
+ "covered": true,
144804
+ "adequate": false
144805
+ },
144806
+ "NIS2-Art21-network-security": {
144807
+ "covered": true,
144808
+ "adequate": false
144809
+ },
144810
+ "UK-CAF-B4": {
144811
+ "covered": true,
144812
+ "adequate": false
144813
+ },
144814
+ "ISO-27001-2022-A.8.8": {
144815
+ "covered": true,
144816
+ "adequate": false
144817
+ },
144818
+ "AU-Essential-8-Patch": {
144819
+ "covered": true,
144820
+ "adequate": false
144821
+ }
144822
+ },
144823
+ "new_control_requirements": [
144824
+ {
144825
+ "id": "NEW-CTRL-042",
144826
+ "name": "INCOMPLETE-PATCH-SEQUENCE-SEVERITY-MULTIPLIER",
144827
+ "description": "A vulnerability-management program must apply a severity multiplier and reopen the item when a flaw is a bypass of a prior fix on the same primitive, because the earlier remediation was recorded as complete while the underlying defect remained reachable by a different path.",
144828
+ "evidence": "For CVE-2020-14750 in Oracle WebLogic Server, the October 2020 Critical Patch Update added a case-sensitive traversal blocklist that was bypassed by re-encoding or changing the case of the traversal, and only the 2020-11-01 Security Alert for CVE-2020-14750 (My Oracle Support Note 2724951.1) closes it, so an operator who recorded the October update as remediation stayed exposed.",
144829
+ "gap_closes": [
144830
+ "NIST-800-53-SI-2",
144831
+ "ISO-27001-2022-A.8.8"
144832
+ ]
144833
+ },
144834
+ {
144835
+ "id": "NEW-CTRL-128",
144836
+ "name": "APPSERVER-REMOTING-PROTOCOL-RESTRICTION",
144837
+ "description": "Application servers that expose a network-reachable administration console must restrict it to trusted hosts and apply the vendor's out-of-cycle security alert on an accelerated clock, so a console reachable from untrusted networks does not depend on the patch window alone.",
144838
+ "evidence": "For CVE-2020-14750 in Oracle WebLogic Server, the administration console is reachable over HTTP on the default port 7001 and the bypass is closed only by the Security Alert patch, so confining the console to a management network is the interim measure while that patch is staged.",
144839
+ "gap_closes": [
144840
+ "NIS2-Art21-network-security",
144841
+ "UK-CAF-B4",
144842
+ "AU-Essential-8-Patch"
144843
+ ]
144844
+ }
144845
+ ]
144846
+ },
144847
+ "CVE-2020-8644": {
144848
+ "name": "PlaySMS Server-Side Template Injection Vulnerability",
144849
+ "lesson_date": "2026-09-23",
144850
+ "ai_discovered_zeroday": false,
144851
+ "ai_discovery_source": "human_researcher",
144852
+ "ai_discovery_date": null,
144853
+ "ai_assist_factor": "none",
144854
+ "attack_vector": {
144855
+ "description": "The username submitted to the PlaySMS login route is stored and processed by the template engine a second time, so an unauthenticated {{ ... }} expression is concatenated into a PHP string, written to a .compiled cache file and included or evaluated, giving remote code execution as the web process.",
144856
+ "privileges_required": "none; the payload is submitted in the login username field before authentication",
144857
+ "complexity": "low; a single login request with a template expression confirms and exploits the flaw",
144858
+ "ai_factor": "None. Credited to an outside human researcher at NCC Group; no AI tooling claimed."
144859
+ },
144860
+ "defense_chain": {
144861
+ "prevention": {
144862
+ "what_would_have_worked": "Upgrading to PlaySMS 1.4.3 or later, which stops the double processing of the login template, and restricting the login page to trusted networks in the interim",
144863
+ "was_this_required": true,
144864
+ "framework_requiring_it": "AU-Essential-8-Patch",
144865
+ "adequacy": "The 1.4.3 upgrade removes the vulnerable code path and closes the online-service patch window for an internet-facing instance, but at Maturity Level One an internal-only PlaySMS has no required patch timeframe, and a self-hosted deployment only receives the fix if the operator tracks the project's releases."
144866
+ },
144867
+ "detection": {
144868
+ "what_would_have_worked": "Alerting on login POSTs whose username field contains {{ or backticks, on the PlaySMS process spawning a shell, and on new .compiled cache files containing PHP built from input",
144869
+ "was_this_required": false,
144870
+ "framework_requiring_it": "UK-CAF-B2",
144871
+ "adequacy": "The payload shape and the cache-file artifact are distinctive, but they require request inspection and file monitoring that a small PlaySMS deployment rarely has."
144872
+ },
144873
+ "response": {
144874
+ "what_would_have_worked": "Capturing evidence, rebuilding the PlaySMS host and rotating any credentials and gateway secrets the process held, rather than only upgrading the package",
144875
+ "was_this_required": false,
144876
+ "framework_requiring_it": "NIS2-Art21-vulnerability-management",
144877
+ "adequacy": "Upgrading closes the flaw but leaves any code the injection planted and any stolen gateway credential in place."
144878
+ }
144879
+ },
144880
+ "framework_coverage": {
144881
+ "NIST-800-53-AC-3": {
144882
+ "covered": true,
144883
+ "adequate": false
144884
+ },
144885
+ "NIS2-Art21-vulnerability-management": {
144886
+ "covered": true,
144887
+ "adequate": false
144888
+ },
144889
+ "UK-CAF-B2": {
144890
+ "covered": true,
144891
+ "adequate": false
144892
+ },
144893
+ "ISO-27001-2022-A.5.15": {
144894
+ "covered": true,
144895
+ "adequate": false
144896
+ },
144897
+ "AU-ISM-1546": {
144898
+ "covered": true,
144899
+ "adequate": false
144900
+ },
144901
+ "AU-Essential-8-Patch": {
144902
+ "covered": true,
144903
+ "adequate": false
144904
+ }
144905
+ },
144906
+ "new_control_requirements": [
144907
+ {
144908
+ "id": "NEW-CTRL-129",
144909
+ "name": "ENTERPRISE-ERP-MANAGEMENT-FUNCTION-AUTHENTICATION",
144910
+ "description": "A web application must authenticate the caller on every request path before it can invoke a takeover-capable function, so that an input field processed on an unauthenticated route cannot reach code execution ahead of any authorization decision.",
144911
+ "evidence": "For CVE-2020-8644 in PlaySMS, the username field on the login route is processed by the template engine before authentication, so an unauthenticated request reaches remote code execution; the fix is the upgrade to PlaySMS 1.4.3.",
144912
+ "gap_closes": [
144913
+ "NIST-800-53-AC-3",
144914
+ "UK-CAF-B2",
144915
+ "ISO-27001-2022-A.5.15",
144916
+ "AU-ISM-1546"
144917
+ ]
144918
+ }
144919
+ ]
144920
+ },
144921
+ "CVE-2019-18935": {
144922
+ "name": "Progress Telerik UI for ASP.NET AJAX Deserialization of Untrusted Data Vulnerability",
144923
+ "lesson_date": "2026-09-23",
144924
+ "ai_discovered_zeroday": false,
144925
+ "ai_discovery_source": "human_researcher",
144926
+ "ai_discovery_date": null,
144927
+ "ai_assist_factor": "none",
144928
+ "attack_vector": {
144929
+ "description": "An attacker who knows or breaks the RadAsyncUpload encryption keys stages a crafted upload configuration to /Telerik.Web.UI.WebResource.axd with type=rau, so the .NET JavaScriptSerializer deserializes attacker-controlled data and loads a mixed-mode assembly DLL, giving remote code execution in the w3wp.exe process.",
144930
+ "privileges_required": "none beyond knowledge of the RadAsyncUpload encryption keys, which older Telerik flaws such as CVE-2017-11317 and CVE-2017-11357 expose",
144931
+ "complexity": "low with a public exploit and encryption-breaking helper available",
144932
+ "ai_factor": "None. Credited to outside human researchers; no AI tooling claimed."
144933
+ },
144934
+ "defense_chain": {
144935
+ "prevention": {
144936
+ "what_would_have_worked": "Upgrading Telerik.Web.UI.dll to R1 2020 (2020.1.114) or later, setting unique RadAsyncUpload encryption keys and enabling the type allowlist, and restricting the RadAsyncUpload endpoint to trusted sources",
144937
+ "was_this_required": true,
144938
+ "framework_requiring_it": "NIST-800-53-SI-2",
144939
+ "adequacy": "The upgrade and settings remove the deserialization path, but they only help where the component is inventoried, and a scanner that misses the software's file path never drives the fix."
144940
+ },
144941
+ "detection": {
144942
+ "what_would_have_worked": "Collecting IIS access logs for POSTs whose URI stem ends in Telerik.Web.UI.WebResource.axd with type=rau, alerting on the EventID 1309 deserialization InvalidCastException, and alerting when w3wp.exe loads a newly written DLL from any folder or from a UNC path, with logs shipped off the host",
144943
+ "was_this_required": false,
144944
+ "framework_requiring_it": "ISO-27001-2022-A.8.16",
144945
+ "adequacy": "The IIS event pair and the exception signature are reliable, but the actors' malware deletes the dropped DLLs, so detection depends on logs stored where the compromise cannot reach them."
144946
+ },
144947
+ "response": {
144948
+ "what_would_have_worked": "Capturing evidence, rebuilding the IIS host and rotating credentials rather than patching in place, given planted DLLs and interactive access",
144949
+ "was_this_required": false,
144950
+ "framework_requiring_it": "UK-CAF-D1",
144951
+ "adequacy": "Upgrading Telerik closes the entry point but does not evict a foothold established while the server was exploited, so response must default to rebuild and credential rotation."
144952
+ }
144953
+ },
144954
+ "framework_coverage": {
144955
+ "NIST-800-53-SI-2": {
144956
+ "covered": true,
144957
+ "adequate": false
144958
+ },
144959
+ "NIS2-Art21-incident-handling": {
144960
+ "covered": true,
144961
+ "adequate": false
144962
+ },
144963
+ "UK-CAF-D1": {
144964
+ "covered": true,
144965
+ "adequate": false
144966
+ },
144967
+ "ISO-27001-2022-A.8.16": {
144968
+ "covered": true,
144969
+ "adequate": false
144970
+ },
144971
+ "AU-ISM-1808": {
144972
+ "covered": true,
144973
+ "adequate": false
144974
+ }
144975
+ },
144976
+ "new_control_requirements": [
144977
+ {
144978
+ "id": "NEW-CTRL-018",
144979
+ "name": "SCANNER-PAPER-COMPLIANCE-TEST",
144980
+ "description": "A vulnerability scanner that reports a host clean without confirming that its coverage reached every file path the vulnerable component can occupy is paper compliance; the operational test must verify the scan examined where the software is actually installed.",
144981
+ "evidence": "For CVE-2019-18935 in Progress Telerik UI for ASP.NET AJAX, AA23-074A records that the agency's scanner held the correct plugin but returned no finding because the software was installed in a file path it did not scan, so a compliant scan reported the host clean while the flaw was present.",
144982
+ "gap_closes": [
144983
+ "AU-ISM-1808",
144984
+ "NIST-800-53-SI-2"
144985
+ ]
144986
+ },
144987
+ {
144988
+ "id": "NEW-CTRL-032",
144989
+ "name": "PERIMETER-COMPROMISE-REBUILD-NOT-PATCH",
144990
+ "description": "A network-reachable server that suffers an actively exploited remote-code-execution compromise must default its response to configuration and evidence capture, rebuild and credential rotation rather than patching in place.",
144991
+ "evidence": "For CVE-2019-18935 in Progress Telerik UI for ASP.NET AJAX, AA23-074A shows actors loaded a mixed-mode assembly in w3wp.exe and dropped timestomped, self-deleting DLLs in C:\\Windows\\Temp\\, so patching Telerik alone would leave the foothold intact.",
144992
+ "gap_closes": [
144993
+ "NIS2-Art21-incident-handling",
144994
+ "UK-CAF-D1"
144995
+ ]
144996
+ },
144997
+ {
144998
+ "id": "NEW-CTRL-031",
144999
+ "name": "FIREWALL-EGRESS-TELEMETRY-SEPARATE-TRUST-ZONE",
145000
+ "description": "An internet-facing server must forward its web-server access logs and application event logs to a store in a separate trust zone, so a code-execution compromise cannot erase the record of the requests that reached it.",
145001
+ "evidence": "For CVE-2019-18935 in Progress Telerik UI for ASP.NET AJAX, the exploitation left a two-event IIS record and an EventID 1309 deserialization exception, while the actors' malware deleted the dropped DLLs, so only off-host logs preserve the evidence.",
145002
+ "gap_closes": [
145003
+ "ISO-27001-2022-A.8.16"
145004
+ ]
145005
+ }
145006
+ ]
145007
+ },
145008
+ "CVE-2015-4852": {
145009
+ "name": "Oracle WebLogic Server Deserialization of Untrusted Data Vulnerability",
145010
+ "lesson_date": "2026-09-24",
145011
+ "ai_discovered_zeroday": false,
145012
+ "ai_discovery_source": "human_researcher",
145013
+ "ai_discovery_date": null,
145014
+ "ai_assist_factor": "none",
145015
+ "attack_vector": {
145016
+ "description": "An unauthenticated request over the T3 protocol to a WebLogic listen port (7001 by default) carries a crafted serialized Java object that WebLogic's WLS Security component deserializes, reaching the Apache Commons Collections InvokerTransformer gadget on the classpath and executing arbitrary commands as the WebLogic process.",
145017
+ "privileges_required": "none; the T3 listener answers before authentication and NVD marks the vector as network, low complexity, no privileges",
145018
+ "complexity": "low; commodity tooling including a Metasploit module ranked Excellent is public",
145019
+ "ai_factor": "None. Credited to human researchers (Lawrence and Frohoff for the class, Breen for the Apache Commons Collections gadget, Kaiser for the report to Oracle); no AI tooling is claimed."
145020
+ },
145021
+ "defense_chain": {
145022
+ "prevention": {
145023
+ "what_would_have_worked": "Following Oracle's mitigation recommendations (MOS Note 2076338.1) and restricting the T3 and T3s protocols to trusted hosts with a WebLogic connection filter or network access controls, so that the listen port does not accept connections from untrusted networks, while the patch was pending; then applying the fixed builds: Oracle's WebLogic Server patch (tracked at MOS Note 2075927.1 and carried in the later Critical Patch Updates); StorageTek Tape Analytics SW Tool 2.2.1 or later (April 2017 Critical Patch Update); the October 2016 Critical Patch Update for MICROS XBR, Oracle Retail Clearance Optimization Engine and Oracle Retail Xstore Point of Service; the October 2017 Critical Patch Update for Oracle Communications WebRTC Session Controller and Oracle Communications Order and Service Management; and the January 2018 Critical Patch Update for Oracle Identity Manager Connector CA ACF2 and Oracle Identity Manager. Oracle names no Oracle Virtual Desktop Infrastructure fix for this CVE; VDI 3.5.3 carries the CVE-2015-7501 Apache Commons Collections fix.",
145024
+ "was_this_required": true,
145025
+ "framework_requiring_it": "AU-Essential-8-Patch",
145026
+ "adequacy": "Applying the patch removes the flaw; a connection filter limits which hosts can open a T3 session but leaves the InvokerTransformer gadget reachable from any allowed host, so it is a compensating measure rather than a fix, and Oracle's mitigation recommendations were the only vendor measure available from 2015-11-10 until the patch shipped."
145027
+ },
145028
+ "detection": {
145029
+ "what_would_have_worked": "Monitoring T3 traffic for the Java serialized-object bytes ac ed 00 followed by weblogic.rjvm.ClassTableEntry (Emerging Threats sid 2035204), watching for the raw AC ED 00 05 serialized-object header in the stream whatever gadget class names follow it, and alerting when the WebLogic process spawns a command interpreter.",
145030
+ "was_this_required": false,
145031
+ "framework_requiring_it": "UK-CAF-B4",
145032
+ "adequacy": "Signature inspection requires visibility of the T3 stream on whatever port WebLogic listens on. T3s or any TLS-wrapped transport hides both signatures unless the traffic is decrypted, and Emerging Threats sid 2022114 matches only base64-encoded delivery, so it does not fire on raw T3 exploitation."
145033
+ },
145034
+ "response": {
145035
+ "what_would_have_worked": "Treating an exposed WebLogic instance as compromised, rebuilding the host and rotating the credentials and keys the WebLogic process could reach, rather than only applying the patch.",
145036
+ "was_this_required": false,
145037
+ "framework_requiring_it": "NIST-800-53-SI-2",
145038
+ "adequacy": "Credential and key rotation is the load-bearing step, because code executed as the WebLogic process can read whatever that process holds; applying the patch alone restores the fixed build while leaving any stolen secret live."
145039
+ }
145040
+ },
145041
+ "framework_coverage": {
145042
+ "NIST-800-53-SC-7": {
145043
+ "covered": true,
145044
+ "adequate": false,
145045
+ "gap": "Until the WebLogic patch was available, Oracle offered only the mitigation recommendations at MOS Note 2076338.1, and SC-7 evidence recording a perimeter firewall does not show the T3 listen port is limited to the hosts that need it; a host still on the allow list carries the serialized object through."
145046
+ },
145047
+ "NIST-800-53-SI-2": {
145048
+ "covered": true,
145049
+ "adequate": false,
145050
+ "gap": "A remediation timeframe measured from patch availability does not cover the interval from 2015-11-06, when a public exploit existed, to the later WebLogic patch, during which only Oracle's mitigation recommendations (MOS Note 2076338.1) were available."
145051
+ },
145052
+ "NIS2-Art21-network-security": {
145053
+ "covered": true,
145054
+ "adequate": false,
145055
+ "gap": "The reasonable-time clock could not start until the WebLogic patch was available, and neither it nor the additional-measure requirement forces re-evaluation of the residual risk a network restriction on T3 leaves: delivery from any host the restriction still allows."
145056
+ },
145057
+ "UK-CAF-B4": {
145058
+ "covered": true,
145059
+ "adequate": false,
145060
+ "gap": "B4.d asks for externally exposed vulnerabilities to be mitigated promptly, and 'promptly' is not defined against working exploit code published four days before Oracle's first measure; an outcome judged against 'mitigated (e.g. by patching)' can accept a T3 restriction that leaves allowed hosts able to deliver the object, and the now-unsupported releases have only temporary mitigation while migrating."
145061
+ },
145062
+ "AU-Essential-8-Patch": {
145063
+ "covered": true,
145064
+ "adequate": false,
145065
+ "gap": "The 48-hour ISM-1876 window for an online service started on 2015-11-10 with Oracle's mitigation recommendations, but the working exploit was public from 2015-11-06 before any vendor fix or mitigation, so no patch window could close that pre-mitigation exposure."
145066
+ },
145067
+ "ISO-27001-2022-A.8.28": {
145068
+ "covered": true,
145069
+ "adequate": false,
145070
+ "gap": "Secure-coding review of the organization's own code does not reach a third-party application server's deserialization of untrusted T3 input, so the unsafe-deserialization defect ships regardless of the attestation."
145071
+ }
145072
+ },
145073
+ "new_control_requirements": [
145074
+ {
145075
+ "id": "NEW-CTRL-128",
145076
+ "name": "APPSERVER-REMOTING-PROTOCOL-RESTRICTION",
145077
+ "description": "Where an application server answers a binary remoting protocol on a network port, that port must accept connections only from the specific hosts that need it, enforced by a connection filter or a network access control, and a remoting-protocol flaw under active exploitation must be remediated on an accelerated schedule rather than deferred to the routine patch cycle.",
145078
+ "evidence": "CVE-2015-4852: Oracle WebLogic Server answers the T3 remoting protocol before authentication, and an unauthenticated serialized Java object reaching the WLS Security component executes commands as the WebLogic process. Oracle's first response, the Security Alert of 2015-11-10, referred to mitigation recommendations at MOS Note 2076338.1 and stated that creation of WebLogic Server patches was in progress, with patch availability tracked at MOS Note 2075927.1. Oracle's connection-filter documentation shows a WebLogic connection filter (weblogic.security.net.ConnectionFilterImpl) rule denying t3 and t3s on a listen port, and keeping the T3 listen port off untrusted networks is the compensating control while the patch is scheduled.",
145079
+ "gap_closes": [
145080
+ "NIST-800-53-SC-7",
145081
+ "NIS2-Art21-network-security",
145082
+ "UK-CAF-B4",
145083
+ "AU-Essential-8-Patch"
145084
+ ]
145085
+ },
145086
+ {
145087
+ "id": "NEW-CTRL-125",
145088
+ "name": "SERVICE-INTERNAL-PROTOCOL-DESERIALIZATION-HARDENING",
145089
+ "description": "A network service that reads serialized objects from a peer must not turn that input into arbitrary object graphs; the decoder must accept only an allowlist of expected types, and the peer must be authenticated before any decoding takes place.",
145090
+ "evidence": "CVE-2015-4852: the WLS Security component in Oracle WebLogic Server deserializes attacker-supplied Java objects from T3 traffic and reaches the Apache Commons Collections InvokerTransformer gadget on the classpath (oracle_common/modules/com.bea.core.apache.commons.collections.jar). CERT/CC VU#576313 records that updating Apache Commons Collections to 3.2.2 or 4.1 disables that gadget but leaves other deserialization gadgets reachable, so type-bound decoding of T3 input is the durable control.",
145091
+ "gap_closes": [
145092
+ "ISO-27001-2022-A.8.28"
145093
+ ]
145094
+ }
145095
+ ]
145096
+ },
145097
+ "CVE-2020-2555": {
145098
+ "name": "Oracle Multiple Products Remote Code Execution Vulnerability",
145099
+ "lesson_date": "2026-09-23",
145100
+ "ai_discovered_zeroday": false,
145101
+ "ai_discovery_source": "human_researcher",
145102
+ "ai_discovery_date": null,
145103
+ "ai_assist_factor": "none",
145104
+ "attack_vector": {
145105
+ "description": "An unauthenticated attacker who can reach a WebLogic listen port sends a serialized Java object over T3; the public Metasploit module sends a javax.management.BadAttributeValueExpException object. Oracle Coherence deserializes it, and the attacker's code runs with the permissions of the server process. For the products that bundle Coherence, Oracle lists HTTP as the attack protocol.",
145106
+ "privileges_required": "None. Oracle's January 2020 risk matrix marks the flaw remotely exploitable without authentication, and the CVSS vector records PR:N.",
145107
+ "complexity": "Low. The CVSS vector records AC:L, and Exploit-DB has listed working exploits since April 2020, with the Metasploit module listed there in May 2020.",
145108
+ "ai_factor": "Not AI-discovered. Oracle credits Jang from VNPT ISC, working with Trend Micro Zero Day Initiative, and no source describes AI tooling in the discovery or in the public exploits."
145109
+ },
145110
+ "defense_chain": {
145111
+ "prevention": {
145112
+ "what_would_have_worked": "Applying Oracle's patch for each affected product from the advisory that lists it: the January 2020 Critical Patch Update for Oracle Coherence 12.1.3.0.0, 12.2.1.3.0 and 12.2.1.4.0, and for Coherence 3.7.1.0 after Oracle added that line on 2020-01-23; the April 2020 update on WebLogic Server 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0 and 12.2.1.4.0 hosts, which fixes the CVE-2020-2883 bypass of the January 2020 fix; the July 2020 update for Retail Assortment Planning 15.0 and 16.0 and Rapid Planning 12.1 and 12.2; the October 2020 update for the Diameter Signaling Router IDIH component 8.0.0 through 8.2.2, WebCenter Portal 12.2.1.3.0 and 12.2.1.4.0 and Healthcare Data Repository 7.0.1; the January 2021 update for Utilities Framework 4.2.0.2.0, 4.2.0.3.0, 4.3.0.1.0 through 4.3.0.6.0, 4.4.0.0.0 and 4.4.0.2.0; and the July 2021 update for Commerce Platform 11.0.0, 11.1.0, 11.2.0 and 11.3.0 through 11.3.2 and Access Manager 11.1.2.3.0. Until then, restricting T3 and IIOP on WebLogic listen ports to trusted hosts.",
145113
+ "was_this_required": true,
145114
+ "framework_requiring_it": "AU-Essential-8-Patch (ISM-1876 for an instance directly accessible over the internet) and NIST-800-53-SI-2",
145115
+ "adequacy": "Each patch is the fix Oracle lists for CVE-2020-2555 in that product. The January 2020 fix is incomplete: Tenable describes CVE-2020-2883 as a bypass of CVE-2020-2555, and Oracle fixed CVE-2020-2883 for WebLogic Server in the April 2020 update, so a WebLogic Server host patched only to January 2020 remains exposed. Restricting T3 and IIOP narrows exposure for Coherence and WebLogic but leaves the bundling products open, because Oracle lists HTTP as their attack protocol, and Oracle states that blocking protocols may break application functionality."
145116
+ },
145117
+ "detection": {
145118
+ "what_would_have_worked": "Alerting on T3 sessions from untrusted addresses to WebLogic listen ports, on serialized Java objects naming javax.management.BadAttributeValueExpException inside T3 traffic, and on the WebLogic or Coherence Java process starting a command interpreter.",
145119
+ "was_this_required": false,
145120
+ "framework_requiring_it": null,
145121
+ "adequacy": "The content match needs a sensor that decodes T3, and a T3S session hides the object from a network sensor. The alert on the Java process starting a command interpreter works whatever the protocol, but it fires only after code execution."
145122
+ },
145123
+ "response": {
145124
+ "what_would_have_worked": "Treating an internet-reachable Coherence or WebLogic instance that ran an affected version without Oracle's fix as possibly compromised: reviewing files, scheduled tasks and outbound connections of the service account, and rotating the credentials held in the WebLogic domain configuration, such as data source passwords, before returning it to service.",
145125
+ "was_this_required": false,
145126
+ "framework_requiring_it": null,
145127
+ "adequacy": "Patching removes the flaw but does not remove anything an attacker installed or any credential an attacker read from the domain, so the review and the rotation are needed on any host that was exposed before the patch."
145128
+ }
145129
+ },
145130
+ "framework_coverage": {
145131
+ "NIST-800-53-SI-2": {
145132
+ "covered": true,
145133
+ "adequate": false,
145134
+ "gap": "A remediation clock keyed to the installed product starts at that product's own advisory, up to 18 months after the Coherence fix."
145135
+ },
145136
+ "NIST-800-53-CM-7": {
145137
+ "covered": true,
145138
+ "adequate": false,
145139
+ "gap": "Restricting T3 covers Coherence and WebLogic, but the bundling products' attack protocol is HTTP, which is their required service."
145140
+ },
145141
+ "NIS2-Art21-patch-management": {
145142
+ "covered": true,
145143
+ "adequate": false,
145144
+ "gap": "A reasonable time measured per product starts after public exploit code existed, and the additional measures for the interval are not named."
145145
+ },
145146
+ "UK-CAF-B4": {
145147
+ "covered": true,
145148
+ "adequate": false,
145149
+ "gap": "Vulnerability tracking by product does not match the January 2020 Coherence entry to a DSR deployment that embeds Coherence."
145150
+ },
145151
+ "AU-Essential-8-Patch": {
145152
+ "covered": true,
145153
+ "adequate": false,
145154
+ "gap": "Each bundling product's window starts at Oracle's release for that product, after public exploit code for the Coherence flaw was listed."
145155
+ },
145156
+ "AU-ISM-1546": {
145157
+ "covered": true,
145158
+ "adequate": false,
145159
+ "gap": "The serialized object is processed without an authentication decision, so authenticated application access does not stop the attack."
145160
+ },
145161
+ "ISO-27001-2022-A.8.8": {
145162
+ "covered": true,
145163
+ "adequate": false,
145164
+ "gap": "An asset register without embedded Coherence versions cannot match the bundling products to the January 2020 advisory."
145165
+ }
145166
+ },
145167
+ "new_control_requirements": [
145168
+ {
145169
+ "id": "NEW-CTRL-021",
145170
+ "name": "TIER-3-DEPENDENCY-INVENTORY",
145171
+ "description": "Software inventory must record the middleware components that vendor products bundle, with their versions, so that an advisory for a component is matched to every installed product that carries it.",
145172
+ "evidence": "CVE-2020-2555: Oracle's January 2020 Critical Patch Update lists the flaw only under Oracle Coherence, for 12.1.3.0.0, 12.2.1.3.0 and 12.2.1.4.0 at its release on 2020-01-14 and for the 3.7.1 line from 2020-01-23. Oracle later listed the same CVE for the Coherence bundled in Retail Assortment Planning and Rapid Planning (July 2020), the Diameter Signaling Router IDIH component, WebCenter Portal and Healthcare Data Repository (October 2020), Utilities Framework (January 2021), and Commerce Platform and Access Manager (July 2021).",
145173
+ "gap_closes": [
145174
+ "ISO-27001-2022-A.8.8",
145175
+ "NIST-800-53-SI-2",
145176
+ "UK-CAF-B4",
145177
+ "NIS2-Art21-patch-management",
145178
+ "AU-Essential-8-Patch"
145179
+ ]
145180
+ },
145181
+ {
145182
+ "id": "NEW-CTRL-128",
145183
+ "name": "APPSERVER-REMOTING-PROTOCOL-RESTRICTION",
145184
+ "description": "Application servers that accept binary remoting protocols must accept them only from named trusted hosts, and connection attempts on those protocols from any other network must be dropped and logged.",
145185
+ "evidence": "CVE-2020-2555: Oracle's January 2020 risk matrix lists T3 as the attack protocol for Oracle Coherence, and the Rapid7 listing of the Metasploit module describes unauthenticated code execution by sending a serialized BadAttributeValueExpException object over T3 to vulnerable WebLogic servers. Oracle's advisory suggests blocking the protocols an attack requires until the patch is applied.",
145186
+ "gap_closes": [
145187
+ "NIST-800-53-CM-7",
145188
+ "AU-ISM-1546"
145189
+ ]
145190
+ },
145191
+ {
145192
+ "id": "NEW-CTRL-125",
145193
+ "name": "SERVICE-INTERNAL-PROTOCOL-DESERIALIZATION-HARDENING",
145194
+ "description": "A server that accepts serialized objects from the network must decode them only into an allowlist of expected types and must reject any other class before it is instantiated, whether or not the sender has authenticated.",
145195
+ "evidence": "CVE-2020-2555 (CWE-502): Oracle Coherence deserializes an object an unauthenticated sender supplies over T3, or over HTTP in the bundling products Oracle lists, and the Metasploit module listed by Rapid7 delivers a javax.management.BadAttributeValueExpException object. Oracle's January 2020 risk matrix marks the flaw remotely exploitable without authentication.",
145196
+ "gap_closes": [
145197
+ "AU-ISM-1546"
145198
+ ]
145199
+ }
145200
+ ]
145201
+ },
145202
+ "CVE-2021-38648": {
145203
+ "name": "Microsoft Open Management Infrastructure (OMI) Privilege Escalation Vulnerability (CVE-2021-38648)",
145204
+ "lesson_date": "2026-09-23",
145205
+ "ai_discovered_zeroday": false,
145206
+ "ai_discovery_source": "human_researcher",
145207
+ "ai_discovery_date": null,
145208
+ "ai_assist_factor": "none",
145209
+ "attack_vector": {
145210
+ "description": "A local, low-privileged user connects to the OMI front end, omiengine, over /var/opt/omi/run/omiserver.sock and sends a recorded command-execution request with the authentication exchange left out. omiengine forwards it to omiserver with an AuthInfo structure still set to uid 0 and gid 0, and omiserver runs the command as root.",
145211
+ "privileges_required": "A local account of any privilege level on a Linux or UNIX host running OMI below 1.6.8-1.",
145212
+ "complexity": "Low. Wiz describes the steps as recording a legitimate command-execution request from omicli, omitting the authentication part and reissuing it.",
145213
+ "ai_factor": "None. The Wiz Research Team reported the flaw to Microsoft, and no source mentions AI tooling."
145214
+ },
145215
+ "defense_chain": {
145216
+ "prevention": {
145217
+ "what_would_have_worked": "Installing OMI 1.6.8-1, or the fixed extension build (OMS Agent for Linux GA v1.13.40-0; Azure Diagnostics (LAD) v4.0.15 or v3.0.135; Linux DSC Agent 2.71.1.25, 2.70.0.30 or 3.0.0.3; on Azure Stack Hub, Azure Monitor, Update and Configuration Management 1.14.02 and Microsoft Azure Diagnostic Extension for Linux Virtual Machines 3.1.135; the Container Monitoring Solution image sha256:12b7682d8f9a2f67752bf121029e315abcae89bc0c34a0e05f07baec72280707), on every host that carries OMI, including the on-premises, System Center Operations Manager and HDInsight hosts that Microsoft did not update automatically.",
145218
+ "was_this_required": true,
145219
+ "framework_requiring_it": "AU-Essential-8-Patch (ISM-1693, from Maturity Level Two)",
145220
+ "adequacy": "The update removes the flaw. It works only where the organization knows OMI is installed: Azure services deploy it silently, so the update depends on finding the omi package on each host first."
145221
+ },
145222
+ "detection": {
145223
+ "what_would_have_worked": "Raising SCX logging with /opt/microsoft/scx/bin/tools/scxadmin -log-set all verbose and alerting on Invoke_ExecuteCommand, Invoke_ExecuteShellCommand and Invoke_ExecuteScript in /var/opt/microsoft/scx/log/scx.log, and collecting auditd execve records for commands run from /var/opt/microsoft/scx/tmp and for scripts with the scx prefix run from /etc/opt/microsoft/scx/conf/tmpdir/.",
145224
+ "was_this_required": false,
145225
+ "framework_requiring_it": null,
145226
+ "adequacy": "Microsoft's blog guidance names only the ExecuteShellCommand method, so a rule built from it alone misses commands and scripts run through ExecuteCommand and ExecuteScript. The SCX log records these calls only when verbose logging was enabled before the activity, and the auditd signal needs execve collection already in place."
145227
+ },
145228
+ "response": {
145229
+ "what_would_have_worked": "Treating a host that ran OMI below 1.6.8-1 alongside untrusted local accounts as possibly compromised at root: reviewing scx.log and auditd records where they exist, and rotating credentials stored on the host before returning it to service.",
145230
+ "was_this_required": false,
145231
+ "framework_requiring_it": null,
145232
+ "adequacy": "The update closes the flaw but does not undo anything a local user did as root before it was installed, and SCX command logging has to be enabled with scxadmin before it records anything."
145233
+ }
145234
+ },
145235
+ "framework_coverage": {
145236
+ "NIST-800-53-SI-2": {
145237
+ "covered": true,
145238
+ "adequate": false,
145239
+ "gap": "A remediation period set from Microsoft's Important rating and 'Exploited: No' record is not shortened by the KEV listing, because the vendor record was never revised."
145240
+ },
145241
+ "NIST-800-53-AC-6": {
145242
+ "covered": true,
145243
+ "adequate": false,
145244
+ "gap": "The omi-user front end and root back end pass a least-privilege review while the back end trusts an identity that defaults to root."
145245
+ },
145246
+ "NIS2-Art21-patch-management": {
145247
+ "covered": true,
145248
+ "adequate": false,
145249
+ "gap": "No timeframe is set, and nothing requires finding the OMI package that an extension or management product installed on on-premises hosts."
145250
+ },
145251
+ "UK-CAF-B2": {
145252
+ "covered": true,
145253
+ "adequate": false,
145254
+ "gap": "A privileged-account review undercounts root-equivalent access on a host where every local account can have omiserver run commands as root."
145255
+ },
145256
+ "AU-Essential-8-Patch": {
145257
+ "covered": true,
145258
+ "adequate": false,
145259
+ "gap": "The Log Analytics, Azure Diagnostics, Azure Automation and Update Management installs of OMI, and OMI instances with remote management enabled that are reachable only from internal networks, such as on-premises System Center Operations Manager and Desired State Configuration hosts, are other applications with no patch window at Maturity Level One; at Maturity Level Two the one-month window closed before the KEV listing."
145260
+ },
145261
+ "ISO-27001-2022-A.8.8": {
145262
+ "covered": true,
145263
+ "adequate": false,
145264
+ "gap": "A register that lists the Azure extension but not the bundled omi package cannot evaluate the 1.6.8-1 boundary."
145265
+ }
145266
+ },
145267
+ "new_control_requirements": [
145268
+ {
145269
+ "id": "NEW-CTRL-021",
145270
+ "name": "TIER-3-DEPENDENCY-INVENTORY",
145271
+ "description": "The software inventory records every component that a platform agent or management extension installs on a host, with the component's own version, so that a flaw in the bundled component is matched and patched even when the installing product reports only its own version.",
145272
+ "evidence": "Wiz reports that Azure services deploy OMI silently on Linux VMs and that its use there is almost completely undocumented. Microsoft's guidance for CVE-2021-38648 lists the Log Analytics Agent, Azure Diagnostics (LAD), Azure Automation, Update Management, Azure Security Center, Azure Sentinel, the Container Monitoring Solution, Azure Stack Hub and HDInsight as carrying the vulnerable OMI framework, and states fixed builds per extension (OMS Agent for Linux GA v1.13.40-0, LAD v4.0.15 and v3.0.135) as well as for OMI itself (1.6.8-1).",
145273
+ "gap_closes": [
145274
+ "ISO-27001-2022-A.8.8",
145275
+ "AU-Essential-8-Patch",
145276
+ "NIS2-Art21-patch-management"
145277
+ ]
145278
+ },
145279
+ {
145280
+ "id": "NEW-CTRL-135",
145281
+ "name": "CONTROL-PANEL-PLUGIN-USER-SURFACE-MUST-NOT-REACH-ROOT-OPERATIONS",
145282
+ "description": "A privileged back-end service acts on a request from an unprivileged front end only after the caller's identity has been established by authentication, and an identity field that authentication has not set is treated as no identity rather than as the most privileged account.",
145283
+ "evidence": "Wiz found that OMI's omiserver, which runs as root, trusts the AuthInfo structure forwarded by omiengine, which runs as the omi user. The structure starts at uid 0 and gid 0, and omiengine forwards a command-execution request that arrives before authentication, so on OMI below 1.6.8-1 any local user who connects to /var/opt/omi/run/omiserver.sock runs commands as root (CVE-2021-38648).",
145284
+ "gap_closes": [
145285
+ "NIST-800-53-AC-6",
145286
+ "UK-CAF-B2"
145287
+ ]
145288
+ },
145289
+ {
145290
+ "id": "NEW-CTRL-001",
145291
+ "name": "CISA-KEV-RESPONSE-SLA",
145292
+ "description": "A listing in the CISA Known Exploited Vulnerabilities catalog starts a response clock measured in hours, whatever severity and exploitability rating the vendor gave the flaw, and the listing is checked against every installed copy of the affected component.",
145293
+ "evidence": "Microsoft rated CVE-2021-38648 Important and 'Exploitation Less Likely', and its update guide record, last revised on 2021-09-20, still reads 'Exploited: No'. CISA added the flaw to KEV on 2021-11-03 with a 2021-11-17 due date, so the KEV listing, not the vendor record, is what tells an organization that the OMI 1.6.8-1 update closes an exploited flaw.",
145294
+ "gap_closes": [
145295
+ "NIST-800-53-SI-2",
145296
+ "NIS2-Art21-patch-management"
145297
+ ]
145298
+ }
145299
+ ]
142643
145300
  }
142644
145301
  }