When headlines about CLOSEDQUORUM first hit, the coverage followed a familiar script: "AI malware independently decides how to destroy computers". Anyone who spends their days parsing logs, inspecting network traces, and debugging memory dumps learns quickly to skip the alarmist noise and read the actual research from Cisco Talos and threat feeds on AlienVault OTX.
The actual code tells a simpler, much more practical story. It is an experimental proof-of-concept (PoC) testing a straightforward idea: using commercial Large Language Model (LLM) APIs as a command-and-control (C2) channel, offloading the decision of which tactical step to run next to an automated panel of models.
In this article, I break down how CLOSEDQUORUM is put together, how its voting logic runs, why the current implementation falls flat in practice, and why behavioral EDR stops the attack regardless of network evasion.
What is CLOSEDQUORUM?#
Discovered by Cisco Talos during their CAIRN (Cognitive Artifact Intelligence Research Network) project, CLOSEDQUORUM is a Windows binary featuring an unconventional C2 mechanism.
Instead of reaching out to a dedicated attacker server, where an operator manually types commands or a script serves static payloads, it sends HTTPS requests to four commercial AI providers:
- DeepSeek
- Qwen (Alibaba)
- Mistral AI
- Google Gemini
The author attempted to achieve what Cisco Talos terms effort displacement (effort displacement): the implant surveys the local machine, sends that context to the model APIs, and executes whichever action collects the most votes.
[Compromised Host]
│
├─ Telemetry: Processes, Privileges, Architecture, User
│
▼
[AI Dispatcher] ──── Concurrent HTTPS Queries ────┐
│ │
├── DeepSeek API (Vote A + Tie-Breaker) │
├── Qwen API (Vote B) │
├── Mistral AI API (Vote C) │
└── Google Gemini API (Vote D) │
│
▼
[Quorum Voting Engine]
│
┌──────────────────────────────────┴──────────────────────┐
▼ ▼
[STEAL / INJECT / PERSIST] [Discord Exfiltration]
Majority tactical execution Webhook with AI reasoning
Anatomy of the quorum voting engine#
The author avoided having the models write arbitrary code on the fly. Anyone who has used LLMs to generate scripts knows that syntax errors and hallucinations will inevitably break runtime execution. Instead, the malware restricts its action space to four hardcoded commands:
| Tactical Action | Payload Description | Operating System Mechanism |
|---|---|---|
STEAL | Credential and asset harvesting | Memory dumping of lsass.exe, browser SQLite database extraction, and cryptocurrency wallet discovery |
INJECT | Defensive evasion and process hijacking | Code injection via Process Hollowing or Early Bird APC Injection |
PERSIST | Host reboot survivability | Windows Registry Run keys or Scheduled Tasks (schtasks) |
MOVE | Local lateral movement | SMB/WMI scanning stubs (incomplete in the analyzed binary) |
How voting unfolds#
Once executed, the binary runs initial discovery:
- Queries the computer name, current user, and process integrity level.
- Checks running processes to verify whether it is running inside a virtual machine or sandbox.
- Builds a JSON payload with these details and asks all four APIs the exact same question: "Based on this host telemetry, which action is most effective: STEAL, INJECT, PERSIST, or MOVE?"
Each model returns its selection along with brief rationale:
- Simple Majority: If three or four models agree (for example, three votes for
STEAL), that routine runs right away. - Tie-Breaker: In a 2-2 tie, the code includes a hardcoded rule: DeepSeek casts the tie-breaking vote.
- Remote Telemetry: Once the vote settles, the malware sends a Discord webhook containing the winning action and the explanation each model supplied.
Why CLOSEDQUORUM fails in real-world scenarios#
Headlines make this look like a polished autonomous weapon. When I inspect the binary under a disassembler, the opposite is true: the code is brittle, slow, and full of half-finished logic.
1. High latency for C2#
In an active intrusion, command delivery must be fast or carefully staged asynchronously. CLOSEDQUORUM has to negotiate four distinct TLS 1.3 handshakes, wait for inference latency from four separate cloud platforms, and parse the responses. That adds 3 to 10 seconds of round-trip delay just to pick a single command. In offensive operations, that delay creates an obvious detection window.
2. Schema fragility and hallucinations#
LLMs do not guarantee strict deterministic output. If one API returns conversational courtesy text before the JSON block, or refuses the request due to content safety policies, the binary's string parser fails. Because the malware lacks robust error handling for unexpected responses, the main thread crashes.
3. Exposed API credentials#
To query the models, the binary requires API tokens. In the sample Cisco Talos retrieved, the developers left behind test keys and placeholder webhooks. If an attacker deployed this binary in the wild with real keys, automated sandboxes like VirusTotal or Hybrid Analysis would extract those tokens in minutes, leading to immediate account bans and payment tracebacks.
4. Incomplete code stubs#
The MOVE module does not even work. It is an empty function stub with no actual implementation. This confirms the analyzed sample was a testing harness, an experimental bench test to check if polling multiple APIs worked, rather than a mature tool deployed in active campaigns.
The genuine concern: network perimeter evasion#
Even with its implementation bugs, CLOSEDQUORUM highlights an evasion concept that network defenders must take seriously: using trusted cloud providers to mask outbound traffic.
Enterprise perimeter defenses (Firewalls, Secure Web Gateways, IDS) detect C2 traffic by looking for:
- Connections to newly registered or low-reputation domains.
- Self-signed or mismatched TLS certificates.
- Periodic beaconing intervals to unknown endpoints.
When malware points its C2 traffic at public AI APIs, the connections route to high-reputation corporate domains with valid certificates:
api.deepseek.comapi.mistral.aigenerativelanguage.googleapis.com
If an organization already uses commercial AI tools, this chatter blends into standard developer and employee HTTPS traffic. Without SSL inspection and payload inspection, perimeter IP and domain blocklists see nothing suspicious.
Defending against this attack class#
The main takeaway from CLOSEDQUORUM is straightforward: who issued the order does not change what the payload does. Whether an instruction to dump passwords came from a human operator or a quorum of LLMs, the operating system activity remains unmistakably malicious.
To protect systems against this class of threat, I rely on three core defenses:
1. LSASS memory protection#
The primary target of the STEAL routine is pulling hashes and plaintexts from lsass.exe. On Windows, I ensure two settings are enabled across endpoints:
- RunAsPPL (Protected Process Light): Prevents non-protected processes from reading LSASS memory.
# Enable PPL for LSASS via the Windows Registry
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -Value 1 -Type DWord
- Credential Guard: Uses virtualization-based security (VBS) to isolate NTLM and Kerberos credentials inside a secure Hyper-V container where host OS processes cannot read them, even with local admin rights.
2. Behavioral EDR (IOAs over IOCs)#
Matching static file hashes, like the 18 indicators listed on AlienVault OTX, only catches known binaries.
Modern enterprise EDR suites, such as CrowdStrike Falcon, focus on Indicators of Attack (IOAs). The sensor does not need to identify the IP address or reputation of the server issuing the command. When an unverified binary attempts Process Hollowing (MITRE T1055) or requests PROCESS_VM_READ against security authentication subsystems, CrowdStrike Falcon intercepts the execution chain directly in the kernel and blocks the action in real time. For teams managing Windows fleets that need proactive protection against ransomware and evasive C2 implants, that behavioral layer makes all the difference.
3. Hunting cognitive artifacts with CAIRN#
The open-source CAIRN project by Cisco Talos offers a practical angle for Threat Hunting: searching for cognitive artifacts compiled into binaries.
Instead of only checking standard PE headers, defenders should inspect suspicious binaries for:
- Known AI API endpoints embedded in cleartext or lightly obfuscated strings.
- Prompt templates packaged into binary data ("Given the following system information...").
- Custom JSON schemas tailored to parse model responses.
Indicators of Compromise (IOCs)#
For security teams needing to update detection rules in SIEM, EDR, or threat hunting routines, here are the SHA256 hashes cataloged by Cisco Talos and documented in the AlienVault OTX Pulse. These match the six experimental builds identified across the author's compile chain:
| Type | SHA256 Hash | Notes |
|---|---|---|
| SHA256 | 250d4fa37488af9b025333fa17705573d721467b203765bc360890b4f5a90cd7 | CLOSEDQUORUM (Initial build sample) |
| SHA256 | c4dc171f2513fcaf9d5ecc815a94aee4063b213ab380f80bd3ac422dee5205a7 | CLOSEDQUORUM (Build chain sample) |
| SHA256 | c13cea04f598e2b0c248d603a6e31bd13aabb64d8149c1b6a77b64e0b983a86f | CLOSEDQUORUM (Build chain sample) |
| SHA256 | f5f1f8c3e7b883793800ab6ccf21b3e60bd0730f300b4595fe74a33adc17a63c | CLOSEDQUORUM (Voting iteration sample) |
| SHA256 | 5191cf625dfc209a347f137b50aea199e82040fd5ee9086fb3e2de73c133f3cb | CLOSEDQUORUM (Build chain sample) |
| SHA256 | eddbd0ecf7195d38fefae5b9d393abfa79e6f3f94bde19308ecef130a05a42e5 | CLOSEDQUORUM (Analyzed binary) |
API endpoints targeted by the quorum#
api.deepseek.com(Tie-breaker and quorum voting)api.mistral.ai(C2 action voting)generativelanguage.googleapis.com(Google Gemini API — C2 action voting)
Threat Intelligence Reference: AlienVault OTX Pulse 6ab431db415b8cd13de69a7e
Conclusion#
CLOSEDQUORUM is slow, brittle, and broken in its current state. Still, it signals where offensive tooling is heading: turning to trusted cloud infrastructure to bypass perimeter controls.
For infrastructure engineers, the defensive playbook does not change: enforce least privilege, lock down Windows credential processes, and run behavioral EDR on the host. When endpoint protections are tuned properly, whatever method the malware used to pick its next move will not matter.
Was this article helpful?
Leave a quick reaction to help prioritize future technical guides:
This post is licensed under CC BY-NC.



Comments
Join the discussion below.
0 comments