FakeGit Campaign Uses 7,600 GitHub Repositories with AgentBaiting to Spread SmartLoader & StealC Malware
FakeGit Campaign Uses 7,600 GitHub Repositories with (TL-2026-1565), also tracked as FakeGit, is a high-severity malware campaign, first published 2026-07-20. It is attributed to FakeGit Operator with low confidence, affects GitHub GitHub repositories / Release assets, maps to 31 MITRE ATT&CK techniques (T1005, T1027, T1027.002), and is covered by 9 detection rules and 31 indicators of compromise.
Key facts for TL-2026-1565
- Threat ID
- TL-2026-1565
- Also known as
- FakeGit, AgentBaiting Campaign
- Severity
- HIGH
- Status
- ACTIVE
- Category
- MALWARE
- First published
- 2026-07-20
- Last reviewed
- 2026-07-20
- Attribution
- FakeGit Operator
- Attribution confidence
- LOW
- Motivation
- FINANCIAL
- Target sectors
- technology, softwaredevelopment, gaming, cryptocurrencyfinance, enterpriseit, generalconsumer
- Target regions
- Global
- Detection rules
- 9
- Indicators of compromise
- 31
Malware and tooling in FakeGit Campaign Uses 7,600 GitHub Repositories with
Malware and tooling: SmartLoader, Stealc, LuaJIT (trojanized runtime)
A large-scale, Vietnamese-speaking-operator campaign dubbed FakeGit has published roughly 7,600 malicious GitHub repositories (from ~6,600 fake profiles, 800+ posing as AI Skills/MCP servers) to distribute a LuaJIT-based SmartLoader that deploys the StealC information stealer, driving over 14 million downloads via GitHub Release assets as of July 2026. The campaign pioneers 'AgentBaiting' — AI-targeted social engineering that gets Claude Code, Gemini, and ChatGPT coding agents to autonomously discover and recommend the malicious repositories to users.
How FakeGit Campaign Uses 7,600 GitHub Repositories with works
FakeGit is an active, ongoing GitHub-native malware distribution campaign first observed on VirusTotal in mid-March 2025 and still expanding as of July 2026, per joint reporting from Island (lead researcher Oleg Zaytsev) and independent analysis published on Derp.ca. The operator floods GitHub with lookalike repositories that clone the names, READMEs, and star-farming patterns of legitimate open-source projects — including a novel wave of ~800 repositories impersonating AI Skills and Model Context Protocol (MCP) servers for tools like Gmail, WhatsApp, Databricks, Jenkins, and Docker integrations. A subset of these listings (600+) were also submitted to public MCP/Skill registries such as LobeHub, Glama, MCP.so, and MCP Market.
The campaign's defining innovation is 'AgentBaiting': rather than relying solely on human victims clicking malicious links, the attackers write README documentation formatted to be maximally 'agent-legible' so that AI coding assistants (Anthropic Claude Code, Google Gemini, OpenAI ChatGPT) searching the web or GitHub on a user's behalf will independently surface, trust, and relay installation instructions for the malicious repository — for example in response to prompts like 'find a free claude cinematic prompt skill' or 'give me a free walmart MCP server link'. This removes the need for the attacker to control the initial link a victim clicks; the AI agent itself becomes an unwitting distribution vector.
Victims (human or AI-agent-directed) are guided to download a ZIP archive containing a `.cmd` launcher that executes a renamed/trojanized LuaJIT runtime against a heavily obfuscated Lua bytecode payload (SmartLoader). The Lua payload uses a custom base64 alphabet backed by a 1,078-entry lookup table, a three-pass table shuffle, and a state-machine bytecode dispatcher so that all strings and API names are assembled only at runtime; ESET has cataloged 16 distinct obfuscator generations (Lua/Agent.Z through Lua/Agent.BT), and static detection on recent samples has dropped from 27/76 (March 2025) to 0/76. SmartLoader establishes persistence via a scheduled task under %LOCALAPPDATA%, uses LuaJIT FFI to call Win32 APIs directly (GetDC/BitBlt for screenshots, VirtualAlloc+PEB-walking for manual DLL resolution, GetConsoleWindow+ShowWindow(SW_HIDE) for console-hiding), and resolves its command-and-control address through an EtherHiding technique — reading a URL/IP value out of a Polygon (Polygon Mainnet) smart contract rather than a hardcoded domain, allowing the operator to rotate infrastructure without shipping new binaries. Two publicly documented contracts are in use: a V1 contract (getDomain(), deployed 2025-02-21, later destroyed and replaced) and a V2 contract (getData(), deployed 2025-11-15).
After C2 resolution, the loader pulls two hex-encoded, XOR-encrypted 'dead drop' blobs from attacker-controlled GitHub repositories: a smaller (~594KB) updated Lua payload and a larger (~2.3MB) PE crypter stub. Both are decrypted with a shared 32-byte XOR key assembled at runtime from the obfuscated lookup table. The PE crypter is an x64 GUI binary whose RCDATA resource holds ~1MB of base64url-encoded, AES-256-ECB-encrypted content; at RVA 0x1000 it XORs two hardcoded 32-byte constants via AVX2 instructions to derive the AES key at runtime, then injects the final payload — the StealC information stealer — into a fresh process via classic process hollowing (CreateProcessA in a suspended state, NtUnmapViewOfSection, VirtualAllocEx, WriteProcessMemory, SetThreadContext, ResumeThread).
StealC is a widely available Malware-as-a-Service (MaaS) infostealer, in circulation since late 2022/early 2023 and advertised around $200/month on cybercrime forums, now at version 2.x with a JSON-based C2 protocol and a redesigned web panel. In the FakeGit chain it is configured to harvest Chrome/Brave/Edge browser data (Login Data, Cookies, Web Data, History, IndexedDB) including a bypass for Chromium App-Bound Encryption via the os_crypt/encrypted_key value in Local State, Firefox credentials via NSS3 (logins.json, cookies.sqlite), Outlook and FoxMail email data, WinSCP SSH sessions, Steam gaming tokens (ssfn*, config.vdf, loginusers.vdf), live browser session cookies (not just stored passwords), browser extension data, and desktop screenshots via GDI+. Its configuration is RC4-encrypted with the key stored as the first string in the .rdata section.
Infrastructure analysis identified 48 distinct loader C2 IPs, heavily concentrated (37 of 48) on ASN 207957 (Serv.host Group Ltd, apparent bulletproof hosting), with smaller footprints on ASN 213702 (QWINS) and several minor ASNs. Two dedicated StealC C2 IPs were identified: 217.119.129.110 (Latvia) and 213.176.72.200 (United Kingdom), both also on ASN 207957. Early campaign infrastructure used domains layer1.icu (registered 2025-02-21) and aproxy.app (registered 2025-03-10) before transitioning to raw IP addressing by mid-March 2025. One shared C2 IP, 151.243.113.70, was also observed hosting unrelated concurrent malware families (ANDROMEDA, Wallstealer, LummaC2, Aurora), suggesting shared bulletproof-hosting infrastructure used across multiple criminal operations rather than exclusive FakeGit ownership.
Single-operator attribution is supported by identical inner payloads reused across dozens of unrelated lure themes (productivity tools, gaming cheats/cracks, crypto/trading schemes, adult content, and a fake 7-Zip CVE-2025-0411 PoC), consistent with a Vietnamese-speaking threat actor per Derp.ca's linguistic and infrastructure analysis. At least five legitimate developer GitHub accounts were compromised and used to host malicious repositories alongside purpose-created sockpuppet accounts, some using single-character-variation usernames (e.g., Naveenkm007 vs. the legitimate Naveenkm07) to impersonate trusted maintainers. As of the July 2026 reporting the campaign remains active, with 25+ malicious GitHub accounts still live and distributing payloads.
MITRE ATT&CK techniques used in TL-2026-1565
Collection
T1005 Data from Local System; T1113 Screen Capture
Defense Evasion
T1027 Obfuscated Files or Information; T1027.002 Software Packing; T1036.005 Match Legitimate Resource Name or Location; T1036.007 Double File Extension; T1055.012 Process Hollowing; T1140 Deobfuscate/Decode Files or Information; T1218 System Binary Proxy Execution; T1564.003 Hidden Window
Exfiltration
T1041 Exfiltration Over C2 Channel
Persistence
T1053.005 Scheduled Task; T1547.005 Security Support Provider
Privilege Escalation
Execution
T1059.007 JavaScript; T1106 Native API; T1204.002 Malicious File
Command and Control
T1071.001 Web Protocols; T1102.001 Dead Drop Resolver; T1573.001 Symmetric Cryptography
Discovery
T1082 System Information Discovery
Initial Access
T1195.002 Compromise Software Supply Chain; T1566.002 Spearphishing Link
Credential Access
T1528 Steal Application Access Token; T1539 Steal Web Session Cookie; T1552.001 Credentials In Files; T1555 Credentials from Password Stores; T1555.003 Credentials from Web Browsers
Resource Development
T1583.005 Botnet; T1586.001 Social Media Accounts; T1587.001 Malware
Reconnaissance
Affected products and versions in FakeGit Campaign Uses 7,600 GitHub Repositories with
- GitHub — GitHub repositories / Release assets
Vulnerable versions: all - Anthropic — Claude Code
Vulnerable versions: web/GitHub search-enabled configurations - Google — Gemini
Vulnerable versions: web/GitHub search-enabled configurations - OpenAI — ChatGPT
Vulnerable versions: web/GitHub search-enabled configurations - Model Context Protocol Ecosystem — LobeHub / Glama / MCP.so / MCP Market registries
Vulnerable versions: listings prior to July 2026 takedown
Remediation for FakeGit Campaign Uses 7,600 GitHub Repositories with
Immediate actions
- Block/alert on connections to identified loader and StealC C2 IPs and ASN 207957 (Serv.host Group Ltd) address space
- Block outbound access to layer1.icu and aproxy.app and any residual DNS records
- Hunt for scheduled tasks created under %LOCALAPPDATA% referencing renamed luajit.exe or similarly named LuaJIT runtimes
- Hunt for .cmd launcher execution paired with unsigned Lua/LuaJIT binaries downloaded from GitHub Release assets
- Isolate any endpoint showing StealC indicators and revoke active browser sessions, OAuth grants, API tokens, and cloud/developer credentials on that host
- Search EDR telemetry for CreateProcessA(suspended) -> NtUnmapViewOfSection -> VirtualAllocEx -> WriteProcessMemory -> SetThreadContext -> ResumeThread process-hollowing sequences
Workarounds
- Disable or tightly restrict AI coding assistants' autonomous web/GitHub search and auto-install capabilities until an internal allowlist of vetted MCP servers/Skills is enforced
- Require human review and approval before any AI-agent-suggested repository, Skill, or MCP server is installed
Longer-term hardening
- Build and enforce a curated allowlist catalog of reviewed Skills, MCP servers, and agent plugins rather than allowing open agent-driven discovery
- Evaluate every new AI agent capability/MCP server in an isolated sandbox first, with no browser sessions, cloud credentials, SSH keys, or production data reachable
- Verify publisher identity and repository provenance (commit history, account age, contributor graph) rather than trusting star counts or registry listings alone
- Maintain an inventory of every AI capability/skill/MCP server in use, including source repository, commit hash, version, and package hash
- Monitor and log agentic pathways: what repositories/URLs coding assistants retrieve and execute on a user's behalf
- Deploy EDR with behavioral detection for LOLBin-adjacent LuaJIT abuse and process hollowing rather than relying on static AV signatures given documented 0/76 detection variants
Weaknesses (CWE) in FakeGit Campaign Uses 7,600 GitHub Repositories with
CWE-506, CWE-829, CWE-311, CWE-494
Timeline of FakeGit Campaign Uses 7,600 GitHub Repositories with
- V1 Polygon smart contract (0xd68910ED4D4A5A9bAdF9ec95604CAE0f3378479B) deployed for blockchain-based (EtherHiding) C2 resolution; layer1.icu domain registered same day.
- Secondary C2 domain aproxy.app registered.
- First FakeGit LuaJIT SmartLoader samples appear on VirusTotal.
- Campaign C2 addressing transitions from domains (layer1.icu, aproxy.app) to raw IP addresses.
- Trojanized LuaJIT binary variant (100KB) introduced, replacing earlier loader stubs.
- Distribution scale-up observed: malicious ZIP release cadence increases from ~16 to ~51 per month.
- V1 Polygon contract's destroyContract() function invoked; operator deploys an alternate V1 contract to maintain C2 continuity.
- V2 Polygon smart contract infrastructure launched alongside new 878KB trojanized LuaJIT binary variants.
- Straiker AI publicly flags trojanized MCP servers distributing SmartLoader and StealC, an early public signal of the campaign's pivot to AI-ecosystem lures.
- PE crypter build0 compiled and deployed as the StealC delivery stage.
- StealC build6 and PE crypter build6 compiled and deployed.
- Derp.ca publishes detailed technical analysis of the FakeGit LuaJIT campaign, documenting 600+ malicious ZIP archives across 47+ GitHub accounts, 25+ still active.
- Peak wave of AI-Skill/MCP-server-themed repository creation, with nearly 300 AI-related malicious repositories published in the month.
- Island (researcher Oleg Zaytsev) publishes 'AgentBaiting' report documenting AI-agent-targeted social engineering across Claude Code, Gemini, and ChatGPT; The Hacker News reports campaign has reached ~7,600 malicious repositories, ~6,600 fake profiles, and 14+ million downloads.
Sources cited for FakeGit Campaign Uses 7,600 GitHub Repositories with
- FakeGit Campaign Uses 7,600 GitHub Repositories to Spread SmartLoader Malware
- AgentBaiting: How 800 Fake AI Skills and MCP Servers Delivered Malware
- FakeGit LuaJIT GitHub Campaign — Technical Research
- StealC v2 Malware Enhances Stealth and Expands Data Theft Features
- New 'Stealc' Malware Builds on Prevalent Infostealers
- Threat Actors Deploy LummaC2 Malware to Exfiltrate Sensitive Data from Organizations
- Lumma Infostealer Data Exfiltration Campaign Continues via GitHub Social Engineering
Threats related to FakeGit Campaign Uses 7,600 GitHub Repositories with
- TroyDens — Fake AI Tool Campaign Delivers SmartLoader Info-Stealer via Trojanized GitHub Repos
- Operation Turb00: Multi-Stage HijackLoader (IDAT Loader) Campaign Delivers Vidar v2.1 Infostealer and SnappyClient RAT via PNG-IDAT Steganography
- Fake Google/Cloudflare Verification Pages Spread Multiple Malware Families via ClickFix (HijackLoader, StealC, Remus Stealer, Amatera Stealer, CastleLoader, NetSupport RAT, ResiLoader)
- Exposed Server Reveals AI-Assisted WebDAV Phishing Kit Targeting Mexican Users (CVE-2025-33053)
- GHOSTYNETWORKS (AS205759) and OMEGATECH (AS202412) Bulletproof Hosting Power Obfuscated JavaScript Backdoor Spam Campaign Targeting Energy, Automotive, FMCG, and Government Finance Across Ukraine, Russia, Poland, Germany, and Transnistria
- Armored Likho APT Deploys BusySnake Python Stealer with PyArmor Obfuscation Against Government and Power Infrastructure Targets
Detection coverage for TL-2026-1565
As of 2026-07-20, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1565 across Splunk SPL, Microsoft KQL and Sigma, covering 31 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.