Windows Shell LNK _IDCONTROLW Zero-Click SMB Coercion Builder — CVE-2026-32202
by virus-or-not · 2026-07-05
- Severity
- High
- CVE
- CVE-2026-32202 (related: CVE-2026-21510)
- Category
- binary
- Affected product
- Windows Shell (shell32.dll) / Windows Explorer
- Affected versions
- Windows builds with shell32.dll vulnerable to incomplete CVE-2026-21510 patch
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-05 |
| Author / Researcher | virus-or-not |
| CVE / Advisory | CVE-2026-32202 (related: CVE-2026-21510) |
| Category | binary |
| Severity | High |
| CVSS Score | Not specified in source |
| Status | PoC |
| Tags | lnk, shell32, windows, apt28, smb-coercion, zero-click, reverse-engineering, control-panel |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Windows Shell (shell32.dll) / Windows Explorer |
| Versions Affected | Windows builds with shell32.dll vulnerable to incomplete CVE-2026-21510 patch |
| Language / Platform | Python 3 (builder script generates a Windows .lnk binary file) |
| Authentication Required | Local-only (victim must have the LNK rendered in Explorer, e.g. via a shared folder) |
| Network Access Required | Yes (triggers outbound SMB to attacker-controlled host) |
Summary
This repository documents a reverse-engineered, undocumented _IDCONTROLW structure used internally by shell32.dll to represent Control Panel applet items inside a .lnk file’s LinkTargetIDList, based on the researcher’s own IDA Pro static analysis and referencing Akamai’s public write-up on the APT28 LNK exploit chain (CVE-2026-21510 / CVE-2026-32202). The included Python script builds a .lnk file containing a crafted LinkTargetIDList (Control Panel root CLSID + category folder + _IDCONTROLW item) that embeds a UNC path, reproducing the mechanism by which Windows Explorer’s icon-rendering path (CControlPanelFolder::GetModuleMapped → PathFileExistsW) triggers an outbound SMB connection with zero user interaction, ahead of the SmartScreen check added by the CVE-2026-21510 patch. The README documents the exact byte layout and call chain used to reconstruct the structure.
Vulnerability Details
Root Cause
Microsoft’s fix for CVE-2026-21510 added SmartScreen verification only at the later ShellExecuteExW stage; the earlier PathFileExistsW call inside CControlPanelFolder::GetModuleMapped, which is reached purely by Explorer trying to render/extract an icon for a Control Panel LNK item, still resolves a UNC path and initiates an SMB connection with no user click and no trust check.
Attack Vector
- Attacker crafts a
.lnkfile whoseLinkTargetIDListcontains the Control Panel root CLSID, the “All Control Panel Items” category item, and a crafted_IDCONTROLWitem embedding a UNC path to an attacker-controlled SMB share (using this repo’s builder script). - Attacker delivers the LNK to the victim (e.g. via a shared folder, archive, or email attachment) so that Windows Explorer merely renders/lists the file.
- Explorer calls
CControlPanelFolder::GetUIObjectOfto fetch an icon, which walks intoGetModuleMappedand callsPathFileExistsWon the embedded UNC path — no click or execution required. - The victim host initiates an outbound SMB connection to the attacker’s server, leaking the NTLM handshake (usable for NTLM relay/hash cracking) with zero user interaction.
Impact
Zero-click NTLM credential/hash leak (authentication coercion) via SMB, exploitable simply by a victim viewing a folder containing the malicious LNK — no execution or explicit click needed; can be chained into NTLM relay attacks.
Environment / Lab Setup
Target: Windows host with vulnerable/incompletely-patched shell32.dll, Explorer rendering a folder containing the LNK
Attacker: Python 3 (stdlib only: struct, uuid, argparse, pathlib), an SMB listener (e.g. Responder/Impacket smbserver) to capture the coerced connection
Proof of Concept
PoC Script
See
CVE-2026-32202.pyin this folder.
| |
The script builds a LinkTargetIDList from three ItemIDs (Control Panel root CLSID, category folder, and a hand-crafted _IDCONTROLW entry containing the supplied UNC path, applet ID, name, and infotip), writes it out as a valid .lnk file, and optionally prints a hex dump of the _IDCONTROLW bytes for verification.
Detection & Indicators of Compromise
Microsoft-Windows-SMBClient/Security: outbound connection to unexpected external/attacker IP shortly after Explorer.exe accesses a directory
Signs of compromise:
- Outbound SMB (port 445) connection attempts to unfamiliar external IPs correlated with
explorer.exebrowsing a downloaded/shared folder, with no corresponding user-initiated file open. - Presence of
.lnkfiles whoseLinkTargetIDListcontains the Control Panel root CLSID ({26EE0668-A00A-44D7-9371-BEB064C98683}) followed by an unrecognized/oversized third ItemID. - NTLM authentication attempts against attacker infrastructure shortly after a suspicious LNK file is delivered.
Remediation
| Action | Detail |
|---|---|
| Primary fix | No vendor patch confirmed as of 2026-07-05 — monitor for a subsequent Microsoft advisory/update addressing GetModuleMapped’s PathFileExistsW call |
| Interim mitigation | Block outbound SMB (TCP 445) to the internet at the firewall/proxy, disable NTLM where possible, and restrict LNK files from untrusted sources (email/download attachment filtering). |
References
Notes
Mirrored from https://github.com/virus-or-not/CVE-2026-32202 on 2026-07-05.
| |