Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
HighCISA KEVExploited in the wildPublic exploit

Microsoft Office Shell.Explorer.1 OLE Security Feature Bypass

IdentifiersCVE-2026-21509CWE-807· Reliance on Untrusted Inputs in a…

CVE-2026-21509 is a Microsoft Office security feature bypass vulnerability caused by reliance on untrusted input in a security decision. Public reporting indicates the flaw is exploitable through specially crafted Office documents, particularly RTF/OLE-based files, that embed or invoke the Shell.Explorer.1 COM/OLE object (CLSID {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}). When such a document is opened, Word can instantiate the legacy Internet Explorer/MSHTML engine via this control and retrieve attacker-controlled content, including LNK payloads over WebDAV or other remote resources, in a way that bypasses normal Office/OLE protections such as Protected View-style safeguards and warning prompts. Multiple reports describe the exploit as enabling automatic execution of embedded OLE-delivered content without macros, and Microsoft disclosed it as actively exploited in the wild. Observed exploitation chains used the bypass to launch follow-on malware loaders and implants, including COM hijacking, scheduled-task persistence, steganographic payload extraction, and in-memory Covenant/Outlook backdoor deployment.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation bypasses Office security controls intended to prevent unsafe OLE or remote content execution from untrusted documents. In observed attacks, this led to silent retrieval and execution of attacker-controlled payloads, enabling full malware delivery chains, persistence establishment, email theft, in-memory implant execution, and broader espionage activity. Although Microsoft classifies the issue as a security feature bypass, reporting consistently shows it can be used as an initial access vector that results in arbitrary code execution in the context of the current user.

Mitigation

If you can’t patch tonight, do this now.

If immediate patching is not possible, Microsoft-provided mitigation is to set the kill bit for the vulnerable COM control by creating the COM Compatibility registry subkey for CLSID {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B} and setting Compatibility Flags to 0x400. Additional defensive measures supported by the reporting include blocking or tightly monitoring WebDAV egress from Office processes, detecting Office documents containing the Shell.Explorer.1 CLSID, restricting execution of downloaded LNK content, and monitoring for related post-exploitation artifacts such as COM hijacking and suspicious explorer.exe child activity.

Remediation

Patch, then assume compromise.

Apply Microsoft's January 26, 2026 emergency/out-of-band updates and service-side protections for affected Office products. Reported fixed/protected versions include Office 2019 build 16.0.10417.20095 or later and Office 2016 build 16.0.5539.1001 or later; Office 2021, Office LTSC 2021, Office LTSC 2024, and Microsoft 365 Apps for Enterprise receive protection via service-side changes that require Office applications to be closed and reopened. Prioritize patching all systems that open untrusted Office documents.
PUBLIC EXPLOITS

Exploits

4 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (11 hidden).

VALID 4 / 15 TOTALView more in app
CVE-2026-21509-POCMaturityPoCVerified exploit

This repository is a small proof-of-concept exploit generator consisting of one Python script and a minimal README. The main file, CVE-2026-21509.py, creates a crafted DOCX document intended to trigger CVE-2026-21509 in Microsoft Office/Word by embedding a valid OLE compound file inside the Office Open XML package. The exploit does not perform exploitation over the network and contains no reverse shell, downloader, or post-exploitation payload. Its core capability is file generation: it decodes a hardcoded minimal OLE template, patches a 16-byte CLSID placeholder at offset 0x80 using a user-provided or default COM CLSID, and then assembles a complete DOCX structure in a temporary directory before zipping it into the final output document. Repository structure is straightforward: - README.md: brief description only. - CVE-2026-21509.py: full exploit logic and CLI entry point. Within the Python script, the main functional components are: - patch_ole_clsid(): parses a CLSID string with Python's uuid module and inserts the little-endian CLSID bytes into the embedded OLE template. - create_malicious_docx(): builds the Office document structure, including required directories, OLE binary placement, content types, relationship files, document properties, and the main Word XML that references the embedded object. - __main__ block: exposes command-line options for output filename and CLSID. The exploit is best classified as a POC rather than an operational weapon. It demonstrates document construction needed to exercise the vulnerability, but it does not include a secondary payload or automated delivery. The attack vector is a malicious file that must be opened in a vulnerable Office environment, likely on Windows due to COM/OLE CLSID usage. No external URLs, IPs, domains, or C2 infrastructure are present in the code; the only fingerprintable artifacts are the internal DOCX package paths and the default CLSID value.

DameDodeDisclosed Mar 12, 2026pythonmarkdownlocalfile
Ashwesker-CVE-2026-21509MaturityPoCVerified exploit

Repository contains a single Python proof-of-concept script and a README describing CVE-2026-21509 as a Microsoft Office security feature bypass involving embedded OLE/COM content. Structure & purpose: - `CVE-2026-21509.py`: Generates a DOCX with low-level OpenXML elements (via `python-docx` + direct XML manipulation) and creates a minimal OLE-like binary stream containing a user-supplied COM CLSID. The script writes the stream to `embedded_ole.bin` and saves the DOCX to a user-chosen path. Comments explicitly state it is conceptual and that real exploitation would require a real vulnerable CLSID and a properly embedded binary part inside the DOCX package. - `README.md`: Provides background, affected Office versions, and testing guidance (run script, open in a vulnerable VM, monitor with ProcMon). It suggests extending the PoC with oletools/VBA/ActiveX, but those capabilities are not implemented in code. Exploit capabilities (as implemented): - Client-side document generation for research/testing. - Embeds a chosen CLSID into a padded binary blob intended to represent an OLE stream. - Does not implement delivery, network callbacks, macro execution, or code execution; it is primarily a scaffold to help researchers craft/test OLE embedding and observe Office behavior. Notable targeting/IOCs: - Writes `embedded_ole.bin` and a DOCX (default `CVE-2026-21509_Test.docx`). - Uses OpenXML namespace URI `http://schemas.openxmlformats.org/drawingml/2006/picture` in document XML (not an external request). - References monitoring `HKCR\CLSID\{...}` for COM activation during testing.

kimstarsDisclosed Jan 27, 2026pythonmarkdownclient-side document / user-interaction (phishing-style) via opening crafted DOCX with embedded OLE/COM object
CVE-2026-21509-PoCMaturityPoCVerified exploit

Repository contains a single Python proof-of-concept script plus documentation and pinned dependencies. The PoC claims to relate to CVE-2026-21509 (Microsoft Office security feature bypass) and focuses on generating a DOCX with low-level OpenXML elements intended to represent an embedded object, alongside a separately generated minimal OLE binary stream. Structure & purpose: - CVE-2026-21509.py: Main PoC generator. Uses python-docx to create a Word document, then manually injects OpenXML drawing elements (w:drawing/wp:inline/a:graphic/a:graphicData/pic:pic) as a simplified placeholder for an embedded object. It generates an OLE stream consisting of a small header plus a user-supplied CLSID (little-endian UUID bytes), pads it to 512 bytes, and writes it to embedded_ole.bin. The script explicitly notes that python-docx does not directly support embedding OLE binary parts, and suggests manual embedding via external tools. - README.md: High-level description of the alleged Office zero-day/bypass, affected Office versions, and testing guidance (open in an unpatched Office VM; monitor CLSID registry lookups; suggests using oletools/OleViewDotNet and mentions kill-bit mitigations). - requirements.txt: python-docx, olefile, urllib3 (urllib3 is imported but not used for network activity in the script). Exploit capabilities: - Generates a test DOCX and a standalone OLE stream file to support research into OLE handling/bypass behavior. - Requires user interaction (opening the document in Office). No preview-pane vector. - Does not include a working embedded OLE part inside the DOCX (only a placeholder XML structure) and does not include a real malicious payload (no shellcode/VBA/command execution logic). Notable code concern: - The function generate_ole_stream() calls check_vuln() which invokes subprocess.Popen([p, u], shell=True) using two obfuscated strings. This behavior is unrelated to DOCX/OLE generation and could be suspicious or simply non-functional; it does not clearly implement exploitation but does represent an unexpected process-spawn attempt.

nicole2ilodlDisclosed Jan 27, 2026pythonuser-assisted / client-side (malicious Office document with embedded OLE object)
Ashwesker-CVE-2026-21509MaturityPoCVerified exploit

Repository contains a single Python proof-of-concept script and a README describing CVE-2026-21509 as a Microsoft Office security feature bypass involving OLE/embedded content. Structure & purpose: - `CVE-2026-21509.py`: Generates a DOCX with low-level OpenXML elements (a `w:drawing`/`wp:inline` structure with `a:graphicData` set to the DrawingML picture URI) and creates a separate OLE binary blob (`embedded_ole.bin`). The script’s intent is to help researchers test how Office handles embedded OLE objects/CLSID activation in allegedly vulnerable builds. - `README.md`: Provides background, affected product list, and usage steps. It explicitly frames this as research/testing in an isolated VM and suggests follow-on tooling (oletools, OleViewDotNet, ProcMon) and mitigations (kill bit/patching). Exploit capabilities (as implemented): - User-assisted attack vector: produces a document artifact that must be opened in Office. - Configurable CLSID embedding: `--clsid` controls the COM CLSID written into the OLE stream (little-endian UUID bytes). - No actual code execution/payload: `generate_ole_stream()` builds only a minimal header + CLSID + padding; the script does not embed the OLE binary into the DOCX package relationships/parts in a way that would reliably trigger OLE activation. It prints that manual embedding may be required. Overall assessment: - This is a conceptual/document-generation PoC rather than an operational exploit. It is primarily useful for creating test artifacts and as a starting point for further manual crafting of OLE parts/ActiveX embedding rather than delivering a complete bypass chain.

AshweskerDisclosed Jan 27, 2026pythonmarkdownlocal / user-assisted (phishing-style document open)
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
Microsoft Corporation365 Appsapplication
Microsoft CorporationOfficeapplication
Microsoft CorporationOffice 2016application
Microsoft CorporationOffice 2019application
Microsoft CorporationOffice 2021application
Microsoft CorporationOffice 2024application
Microsoft CorporationOffice Long Term Servicing Channelapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence59

Every observed campaign linking this CVE to a named adversary.

Associated malware69

Malware families riding this exploit, with evidence and IOCs.

Detection signatures3

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity152

Community discussion across Reddit, Mastodon, and other social sources.