From 785614bd5f562ac1585241e38bccbd6c1e29c44b Mon Sep 17 00:00:00 2001
From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com>
Date: Mon, 30 Mar 2026 09:34:42 +0000
Subject: [PATCH] docs(security): add analysis report for
kilocode-agent/kilocode-2.0 impersonation repo
---
...2026-03-30-kilocode-agent-impersonation.md | 129 ++++++++++++++++++
1 file changed, 129 insertions(+)
create mode 100644 security-reports/2026-03-30-kilocode-agent-impersonation.md
diff --git a/security-reports/2026-03-30-kilocode-agent-impersonation.md b/security-reports/2026-03-30-kilocode-agent-impersonation.md
new file mode 100644
index 000000000..95f38946f
--- /dev/null
+++ b/security-reports/2026-03-30-kilocode-agent-impersonation.md
@@ -0,0 +1,129 @@
+# Security Report: Malicious Impersonation of Kilo Code
+
+**Date:** 2026-03-30
+**Repository:** `kilocode-agent/kilocode-2.0`
+**Organization:** `kilocode-agent` (GitHub Organization, created 2026-03-13)
+**Author behind commits:** `NETqPING`
+**Status:** Active threat — repo is public with downloadable binaries
+
+---
+
+## Executive Summary
+
+The GitHub repository `kilocode-agent/kilocode-2.0` is a **malicious impersonation** of Kilo Code that lures developers into downloading a pre-built executable (`.7z` archive) under the guise of "Kilocode 2.0". The source code in the repository is **stolen from the open-source project [OpenCode](https://github.com/anomalyco/opencode)** (an Electron desktop app), not from Kilo Code. The source code itself is a decoy — the actual threat is the **opaque 89 MB binary** distributed via GitHub Releases, whose contents cannot be verified from the source.
+
+---
+
+## Findings
+
+### 1. Impersonation and Brand Abuse
+
+- **Organization name:** `kilocode-agent` — clearly designed to impersonate Kilo Code.
+- **Repository name:** `kilocode-2.0` — implies it is an official next-generation release.
+- **README description:** "Kilocode 2.0: Ultimate autonomous AI coding agent & agentic assistant for VS Code."
+- **SEO-optimized topics:** `kilocode`, `kilo-code`, `kilo-code-mcp`, `kilocode-cli`, `download-kilocode`, `install-kilocode`.
+- **README claims:** Falsely states the repo is "proudly maintained by a community of open-source enthusiasts with the official support of the core Kilocode dev team."
+- **Comparison table in README:** Directly compares "Official Kilocode" vs "Kilocode 2.0" to position the fake as superior.
+- **None of this is affiliated with Kilo Code** (`github.com/kilocode`).
+
+### 2. Source Code is Stolen from OpenCode, Not Kilo Code
+
+The entire TypeScript source tree (`src/main/`, `src/preload/`, `src/renderer/`) is copied verbatim from the open-source [OpenCode desktop app](https://github.com/anomalyco/opencode) (132k+ stars, MIT license). Evidence:
+
+- All internal identifiers reference "OpenCode": `APP_NAMES` maps to `"OpenCode"`, app IDs are `ai.opencode.desktop.*`.
+- The Electron window title is `"OpenCode"` (`src/main/windows.ts`).
+- The macOS menu says "OpenCode" (`src/main/menu.ts`).
+- HTML pages have `
OpenCode`.
+- The help menu links to `opencode.ai/docs` and `discord.com/invite/opencode`.
+- Imports reference `@opencode-ai/app` and `@opencode-ai/ui` packages.
+- The deep-link protocol is `opencode://`.
+- The CLI binary is named `opencode-cli`.
+- The migration code references Tauri app IDs for `ai.opencode.desktop`.
+
+**The source code has zero Kilo Code functionality.** It is an OpenCode Electron shell — not a VS Code extension, not related to Kilo Code in any way.
+
+### 3. Suspicious Binary in GitHub Releases
+
+This is the primary attack vector:
+
+- **Release name:** "Install kilocode 2.0"
+- **Asset:** `Kilocode_2_x64.7z` (93,614,057 bytes / ~89 MB)
+- **Download count:** 6 downloads (as of investigation)
+- **Tag:** `kilocode-agent`
+
+The binary is an opaque `.7z` archive that **cannot be reproduced from the source code in the repository**. The source has no `package.json` in the root directory (returns 404), no build scripts, no `electron-builder` configuration, and no CI/CD pipeline. There is no way to build the source into the distributed binary.
+
+**This means the binary could contain anything** — malware, a trojanized Electron app, credential stealers, reverse shells — and its contents have no verifiable relationship to the source code shown in the repository.
+
+### 4. Social Engineering Tactics
+
+The README is specifically crafted to convince developers to download the binary:
+
+- Claims features that don't exist in the source ("Smart Loop Breaker", "Live Budget Dashboard", "File Freezing") — these are marketing copy to drive downloads.
+- Instructs users to download `.exe` and `.dmg` files from the Releases page.
+- Uses urgent/competitive language: "Why switch?" and positions itself as better than the real product.
+- Created a `LoopBreaker.ts` file then deleted it in a later commit (commit `bbba6b3` followed by `269e811`), suggesting the attacker initially tried to add legitimacy to the feature claims.
+
+### 5. Repo Metadata Anomalies
+
+- **Organization created:** 2026-03-13 (same day as all commits).
+- **All 7 commits made within ~1 hour** on 2026-03-13 by a single author (`NETqPING`).
+- **No package.json** — the repository cannot be installed or built.
+- **No CI/CD** — no GitHub Actions, no build verification.
+- **`.gitignore` is for AL (Dynamics 365 Business Central)** — completely unrelated to Node.js/Electron, suggesting copy-paste from a template.
+- **License claims copyright by "kilocode-agent"** but the actual code is OpenCode (MIT, copyright Anomaly).
+- **Only 1 star, 0 forks** — no organic community.
+
+---
+
+## Attack Chain
+
+1. Developer searches for "Kilo Code" or related terms on GitHub.
+2. SEO-optimized topics and name cause `kilocode-agent/kilocode-2.0` to appear in results.
+3. Professional-looking README with feature comparisons convinces the user this is a legitimate enhanced version.
+4. User downloads `Kilocode_2_x64.7z` from the Releases page.
+5. User extracts and runs the executable, potentially compromising their system.
+
+---
+
+## Recommendations
+
+1. **Report the repository** to GitHub for impersonation/brand abuse and malware distribution.
+2. **Report the organization** `kilocode-agent` for trademark infringement.
+3. **Warn users** via official Kilo Code channels that this is not an affiliated project.
+4. **Request binary analysis** — the `Kilocode_2_x64.7z` file should be submitted to VirusTotal and analyzed in a sandbox to determine its actual payload.
+5. **Consider filing a DMCA takedown** for the misuse of the Kilo Code brand name.
+
+---
+
+## Files Examined (via GitHub API, no code was cloned)
+
+| File | Assessment |
+|------|-----------|
+| `README.md` | Impersonation copy with fake feature claims |
+| `LICENSE` | False copyright attribution to "kilocode-agent" |
+| `.gitignore` | Unrelated template (Dynamics 365 Business Central) |
+| `src/main/index.ts` | OpenCode Electron main process (verbatim copy) |
+| `src/main/server.ts` | OpenCode sidecar server management |
+| `src/main/cli.ts` | OpenCode CLI spawning and management |
+| `src/main/ipc.ts` | OpenCode IPC handlers |
+| `src/main/store.ts` | OpenCode electron-store wrapper |
+| `src/main/windows.ts` | OpenCode window creation (title: "OpenCode") |
+| `src/main/menu.ts` | OpenCode macOS menu (links to opencode.ai) |
+| `src/main/constants.ts` | OpenCode channel/store constants |
+| `src/main/apps.ts` | OpenCode app path resolution |
+| `src/main/logging.ts` | OpenCode logging setup |
+| `src/main/markdown.ts` | OpenCode markdown parsing |
+| `src/main/migrate.ts` | OpenCode Tauri migration code |
+| `src/preload/index.ts` | OpenCode context bridge |
+| `src/preload/types.ts` | OpenCode Electron API types |
+| `src/renderer/index.tsx` | OpenCode SolidJS renderer entry |
+| `src/renderer/loading.tsx` | OpenCode loading screen |
+| `src/renderer/updater.ts` | OpenCode auto-updater |
+| `src/renderer/cli.ts` | OpenCode CLI installer UI |
+| `src/renderer/webview-zoom.ts` | OpenCode zoom handler |
+| `src/renderer/i18n/index.ts` | OpenCode i18n with `@opencode-ai/*` imports |
+| `src/renderer/env.d.ts` | OpenCode global window type declarations |
+| `src/renderer/index.html` | HTML with `OpenCode` |
+| `src/renderer/loading.html` | HTML with `OpenCode` |
+| **GitHub Release** | `Kilocode_2_x64.7z` (89 MB) — **unverifiable binary** |