[False Positive?] Windows Defender detects Trojan:Win32/Wacatac.H!ml when running opencode #4599

Open
opened 2026-02-16 17:44:44 -05:00 by yindo · 10 comments
Owner

Originally created by @saliksik on GitHub (Jan 10, 2026).

Originally assigned to: @rekram1-node on GitHub.

Description
I am encountering a critical issue where Windows Security (Windows Defender) flags and quarantines files immediately upon running opencode in PowerShell. The detection is identified as Trojan:Win32/Wacatac.H!ml.

I am strictly using opencode-antigravity-auth from this repository.

To Reproduce

  1. Open PowerShell.
  2. Run opencode.
  3. Windows Security immediately triggers a "Threat quarantined" notification.

Expected behavior
The tool should execute without triggering antivirus heuristics.

Screenshots

Image

Note: The affected items point to temporary .dll files generated in AppData\Local\Temp.

Environment

  • OS: Windows 11 Pro
  • Shell: PowerShell
  • OpenCode: 1.1.11
  • Plugin Version: opencode-antigravity-auth@beta

Configuration Files
Here is my current configuration setup:

antigravity.json:

{
  "$schema": "https://raw.githubusercontent.com/NoeFabris/opencode-antigravity-auth/main/assets/antigravity.schema.json",
  "auto_update": true
}

opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "google/antigravity-claude-opus-4-5-thinking:max",
  "plugin": ["opencode-antigravity-auth@beta"],
  "agent": {
    "build": {
      "mode": "primary",
      "model": "google/antigravity-claude-opus-4-5-thinking",
      "thinkingConfig": { "thinkingBudget": 32768 },
      "tools": {
        "write": true,
        "edit": true,
        "bash": true
      }
    },
    "plan": {
      "mode": "primary",
      "model": "github-copilot/claude-opus-4.5",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      }
    },
    "code-reviewer": {
      "description": "Reviews code for best practices and potential issues",
      "mode": "subagent",
      "model": "google/antigravity-claude-opus-4-5-thinking",
      "thinkingConfig": { "thinkingBudget": 32768 },
      "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
      "tools": {
        "write": false,
        "edit": false
      }
    }
  },
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "XXXXXX"
      },
      "enabled": true
    }
  },
  "provider": {
    "google": {
      "models": {
        "antigravity-gemini-3-pro": {
          "name": "Gemini 3 Pro (Antigravity)",
          "limit": { "context": 1048576, "output": 65535 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
          "variants": {
            "low": { "thinkingLevel": "low" },
            "high": { "thinkingLevel": "high" }
          }
        },
        "antigravity-gemini-3-flash": {
          "name": "Gemini 3 Flash (Antigravity)",
          "limit": { "context": 1048576, "output": 65536 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
          "variants": {
            "minimal": { "thinkingLevel": "minimal" },
            "low": { "thinkingLevel": "low" },
            "medium": { "thinkingLevel": "medium" },
            "high": { "thinkingLevel": "high" }
          }
        },
        "antigravity-claude-sonnet-4-5": {
          "name": "Claude Sonnet 4.5 (no thinking) (Antigravity)",
          "limit": { "context": 200000, "output": 64000 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
        },
        "antigravity-claude-sonnet-4-5-thinking": {
          "name": "Claude Sonnet 4.5 Thinking (Antigravity)",
          "limit": { "context": 200000, "output": 64000 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
          "variants": {
            "low": { "thinkingConfig": { "thinkingBudget": 8192 } },
            "max": { "thinkingConfig": { "thinkingBudget": 32768 } }
          }
        },
        "antigravity-claude-opus-4-5-thinking": {
          "name": "Claude Opus 4.5 Thinking (Antigravity)",
          "limit": { "context": 200000, "output": 64000 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
          "variants": {
            "low": { "thinkingConfig": { "thinkingBudget": 8192 } },
            "max": { "thinkingConfig": { "thinkingBudget": 32768 } }
          }
        },
        "gemini-2.5-flash": {
          "name": "Gemini 2.5 Flash (Gemini CLI)",
          "limit": { "context": 1048576, "output": 65536 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
        },
        "gemini-2.5-pro": {
          "name": "Gemini 2.5 Pro (Gemini CLI)",
          "limit": { "context": 1048576, "output": 65536 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
        },
        "gemini-3-flash-preview": {
          "name": "Gemini 3 Flash Preview (Gemini CLI)",
          "limit": { "context": 1048576, "output": 65536 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
        },
        "gemini-3-pro-preview": {
          "name": "Gemini 3 Pro Preview (Gemini CLI)",
          "limit": { "context": 1048576, "output": 65535 },
          "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
        }
      }
    }
  }
}

Additional Context
The !ml suffix in the threat name suggests this is a Machine Learning heuristic detection, which is often a false positive for unsigned binaries or tools that generate temporary DLLs at runtime. Could you please verify if the release binaries are signed or if there is a known issue with the unpacking process?


Originally created by @saliksik on GitHub (Jan 10, 2026). Originally assigned to: @rekram1-node on GitHub. **Description** I am encountering a critical issue where Windows Security (Windows Defender) flags and quarantines files immediately upon running `opencode` in PowerShell. The detection is identified as `Trojan:Win32/Wacatac.H!ml`. I am strictly using `opencode-antigravity-auth` from this repository. **To Reproduce** 1. Open PowerShell. 2. Run `opencode`. 3. Windows Security immediately triggers a "Threat quarantined" notification. **Expected behavior** The tool should execute without triggering antivirus heuristics. **Screenshots** <img width="1274" height="646" alt="Image" src="https://github.com/user-attachments/assets/94a74d71-c647-45f0-bb6f-083238f2f962" /> > **Note:** The affected items point to temporary `.dll` files generated in `AppData\Local\Temp`. **Environment** * **OS:** Windows 11 Pro * **Shell:** PowerShell * **OpenCode:** 1.1.11 * **Plugin Version:** `opencode-antigravity-auth@beta` **Configuration Files** Here is my current configuration setup: `antigravity.json`: ```json { "$schema": "https://raw.githubusercontent.com/NoeFabris/opencode-antigravity-auth/main/assets/antigravity.schema.json", "auto_update": true } ``` `opencode.json`: ```json { "$schema": "https://opencode.ai/config.json", "model": "google/antigravity-claude-opus-4-5-thinking:max", "plugin": ["opencode-antigravity-auth@beta"], "agent": { "build": { "mode": "primary", "model": "google/antigravity-claude-opus-4-5-thinking", "thinkingConfig": { "thinkingBudget": 32768 }, "tools": { "write": true, "edit": true, "bash": true } }, "plan": { "mode": "primary", "model": "github-copilot/claude-opus-4.5", "tools": { "write": false, "edit": false, "bash": false } }, "code-reviewer": { "description": "Reviews code for best practices and potential issues", "mode": "subagent", "model": "google/antigravity-claude-opus-4-5-thinking", "thinkingConfig": { "thinkingBudget": 32768 }, "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", "tools": { "write": false, "edit": false } } }, "mcp": { "context7": { "type": "remote", "url": "https://mcp.context7.com/mcp", "headers": { "CONTEXT7_API_KEY": "XXXXXX" }, "enabled": true } }, "provider": { "google": { "models": { "antigravity-gemini-3-pro": { "name": "Gemini 3 Pro (Antigravity)", "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "low": { "thinkingLevel": "low" }, "high": { "thinkingLevel": "high" } } }, "antigravity-gemini-3-flash": { "name": "Gemini 3 Flash (Antigravity)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "minimal": { "thinkingLevel": "minimal" }, "low": { "thinkingLevel": "low" }, "medium": { "thinkingLevel": "medium" }, "high": { "thinkingLevel": "high" } } }, "antigravity-claude-sonnet-4-5": { "name": "Claude Sonnet 4.5 (no thinking) (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "antigravity-claude-sonnet-4-5-thinking": { "name": "Claude Sonnet 4.5 Thinking (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "max": { "thinkingConfig": { "thinkingBudget": 32768 } } } }, "antigravity-claude-opus-4-5-thinking": { "name": "Claude Opus 4.5 Thinking (Antigravity)", "limit": { "context": 200000, "output": 64000 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, "variants": { "low": { "thinkingConfig": { "thinkingBudget": 8192 } }, "max": { "thinkingConfig": { "thinkingBudget": 32768 } } } }, "gemini-2.5-flash": { "name": "Gemini 2.5 Flash (Gemini CLI)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-2.5-pro": { "name": "Gemini 2.5 Pro (Gemini CLI)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-3-flash-preview": { "name": "Gemini 3 Flash Preview (Gemini CLI)", "limit": { "context": 1048576, "output": 65536 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "gemini-3-pro-preview": { "name": "Gemini 3 Pro Preview (Gemini CLI)", "limit": { "context": 1048576, "output": 65535 }, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } } } } } ``` **Additional Context** The `!ml` suffix in the threat name suggests this is a Machine Learning heuristic detection, which is often a false positive for unsigned binaries or tools that generate temporary DLLs at runtime. Could you please verify if the release binaries are signed or if there is a known issue with the unpacking process? ---
yindo added the windows label 2026-02-16 17:44:44 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Jan 10, 2026):

This issue might be a duplicate of existing issues. Please check:

  • #3415: Windows Defender falsely flags new releases as trojans (primary tracking issue with comprehensive mitigation plan)
  • #3406: v0.15.16 was infected by a virus and removed by Windows Security (same Trojan:Script/Wacatac.C!ml detection)
  • #3388: Windows Defender | Wacapew.A!ml (similar heuristic detection pattern)
  • #1103: opencode-windows-x64.zip file contains virus (recurring issue with false positives)
  • #3151: opencode 0.15.1: virus warning on Windows 11 (previous instance of same problem)
  • #2564: OpenCode v0.7.6 infected by a virus (earlier report of same false positive pattern)

These appear to be recurring false positive detections by Windows Defender's ML/heuristic signatures. Issue #3415 is the main tracking issue with a comprehensive action plan including code-signing, checksums, and SBOM generation.

Feel free to ignore if this is a different or more specific case than those listed above.

@github-actions[bot] commented on GitHub (Jan 10, 2026): This issue might be a duplicate of existing issues. Please check: - #3415: Windows Defender falsely flags new releases as trojans (primary tracking issue with comprehensive mitigation plan) - #3406: v0.15.16 was infected by a virus and removed by Windows Security (same Trojan:Script/Wacatac.C!ml detection) - #3388: Windows Defender | Wacapew.A!ml (similar heuristic detection pattern) - #1103: opencode-windows-x64.zip file contains virus (recurring issue with false positives) - #3151: opencode 0.15.1: virus warning on Windows 11 (previous instance of same problem) - #2564: OpenCode v0.7.6 infected by a virus (earlier report of same false positive pattern) These appear to be recurring false positive detections by Windows Defender's ML/heuristic signatures. Issue #3415 is the main tracking issue with a comprehensive action plan including code-signing, checksums, and SBOM generation. Feel free to ignore if this is a different or more specific case than those listed above.
Author
Owner

@markusbegerow commented on GitHub (Jan 10, 2026):

Very good description @saliksik!
I can confirm the triggering antivirus heuristics.

@markusbegerow commented on GitHub (Jan 10, 2026): Very good description @saliksik! I can confirm the triggering antivirus heuristics.
Author
Owner

@sollozzo13 commented on GitHub (Jan 10, 2026):

Same! I don't trust this sh.t anymore. It infected my PC. Get rid of it.

@sollozzo13 commented on GitHub (Jan 10, 2026): Same! I don't trust this sh.t anymore. It infected my PC. Get rid of it.
Author
Owner

@mmcgill commented on GitHub (Jan 10, 2026):

I see the same behavior, with similarly named DLLs in that temp directory.

  • Windows 11 Home 25H2
  • OpenCode installed via npm install -g opencode-ai (native windows Node installation)

Looking at specific versions of the opencode-ai NPM package:

  • versions 1.1.9 and below run (but then auto-update in the default configuration)
  • starting with version 1.1.10, windows defender flags those DLLs when attempting to invoke the opencode.exe executable
@mmcgill commented on GitHub (Jan 10, 2026): I see the same behavior, with similarly named DLLs in that temp directory. * Windows 11 Home 25H2 * OpenCode installed via `npm install -g opencode-ai` (native windows Node installation) Looking at specific versions of the `opencode-ai` NPM package: * versions 1.1.9 and below run (but then auto-update in the default configuration) * starting with version 1.1.10, windows defender flags those DLLs when attempting to invoke the opencode.exe executable
Author
Owner

@mmcgill commented on GitHub (Jan 10, 2026):

For those affected who are ok running an older version while this gets sorted, see #1793 for a couple options to disable auto-update.

@mmcgill commented on GitHub (Jan 10, 2026): For those affected who are ok running an older version while this gets sorted, see #1793 for a couple options to disable auto-update.
Author
Owner

@Xavier-Burger commented on GitHub (Jan 10, 2026):

For those affected who are ok running an older version while this gets sorted, see #1793 for a couple options to disable auto-update.

Which version was last stable? I opened an issue just now not realizing this had already been raised. I was on v1.1.11 througout the week and was running fine. When I updated to v1.1.12 I encountered the false positive. In my issue, I show uninstalling and re-installing. And installing v1.1.11 explicitely. same false positive.

@Xavier-Burger commented on GitHub (Jan 10, 2026): > For those affected who are ok running an older version while this gets sorted, see [#1793](https://github.com/anomalyco/opencode/issues/1793) for a couple options to disable auto-update. Which version was last stable? [I opened an issue just now](https://github.com/anomalyco/opencode/issues/7655) not realizing this had already been raised. I was on v1.1.11 througout the week and was running fine. When I updated to v1.1.12 I encountered the false positive. In my issue, I show uninstalling and re-installing. And installing v1.1.11 explicitely. same false positive.
Author
Owner

@Xavier-Burger commented on GitHub (Jan 10, 2026):

Try these steps, 1.1.8 seems to not raise the false positive for now:

https://github.com/anomalyco/opencode/issues/7655#issuecomment-3733104534

@Xavier-Burger commented on GitHub (Jan 10, 2026): Try these steps, 1.1.8 seems to not raise the false positive for now: https://github.com/anomalyco/opencode/issues/7655#issuecomment-3733104534
Author
Owner

@flupkede commented on GitHub (Jan 10, 2026):

in powershell admin use : Remove-MpPreference -ExclusionProcess "opencode.exe" However when you see files like .3aebfebd1ffffffd-00000000.dll in Temp it's like asking for trouble and say Hi! I'm a virus, please scan and detect me. If they would use an %appdata%\Opencode folder and have dll's like
languageserver
│ ├── typescript-language-server.dll
│ └── python-language-server.dll
maybe ms would not detect it as scam. Use decent paths and decent file names and it could already be better, dll's shouldn't be generated in temp with random names. And if you do require something random in the filename, use the PID instead ?

@flupkede commented on GitHub (Jan 10, 2026): in powershell admin use : `Remove-MpPreference -ExclusionProcess "opencode.exe"` However when you see files like .3aebfebd1ffffffd-00000000.dll in Temp it's like asking for trouble and say Hi! I'm a virus, please scan and detect me. If they would use an %appdata%\Opencode folder and have dll's like languageserver │ ├── typescript-language-server.dll │ └── python-language-server.dll maybe ms would not detect it as scam. Use decent paths and decent file names and it could already be better, dll's shouldn't be generated in temp with random names. And if you do require something random in the filename, use the PID instead ?
Author
Owner

@tsachig commented on GitHub (Jan 13, 2026):

This has been a recurring issue. I'd appreciate it if you could work with MS Defender team to resolve it. Thanks

@tsachig commented on GitHub (Jan 13, 2026): This has been a recurring issue. I'd appreciate it if you could work with MS Defender team to resolve it. Thanks
Author
Owner

@rekram1-node commented on GitHub (Jan 13, 2026):

I'll try to get code signing setup soon to avoid these false positives

@rekram1-node commented on GitHub (Jan 13, 2026): I'll try to get code signing setup soon to avoid these false positives
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#4599