Aqua Trivy VS Code Extension Supply Chain Compromise — hackerbot-claw AI Bot Campaign, Stolen PAT, OpenVSX Malicious Publish, AI Agent Execution Injection
Aqua Trivy VS Code Extension Supply Chain Compromise (TL-2026-0165), also tracked as GHSA-8mr6-gf9x-j8qg, is a high-severity supply-chain compromise, first published 2026-03-02. It has no confirmed attribution, affects Aqua Security Trivy VS Code Extension, maps to 21 MITRE ATT&CK techniques (T1005, T1027, T1036.005), and is covered by 9 detection rules and 16 indicators of compromise.
Key facts for TL-2026-0165
- Threat ID
- TL-2026-0165
- Also known as
- GHSA-8mr6-gf9x-j8qg, hackerbot-claw campaign
- Severity
- HIGH
- Status
- SUPERSEDED
- Category
- SUPPLY_CHAIN
- First published
- 2026-03-02
- Last reviewed
- 2026-03-02
- Attribution confidence
- HIGH
- Motivation
- UNKNOWN
- Target sectors
- technology, open-source, devops, cloud-native, security-tooling
- Target regions
- Global
- Detection rules
- 9
- Indicators of compromise
- 16
An AI-powered autonomous bot (hackerbot-claw) exploited GitHub Actions workflows across 7 major open source repositories between February 21-28, 2026, using 5 distinct exploitation techniques. The campaign resulted in theft of a GitHub PAT from Aqua Security's Trivy repository, which was used to publish malicious versions 1.8.12 and 1.8.13 of the Trivy VS Code extension to OpenVSX. The malicious extensions contained injected code that executed locally-installed AI coding assistants (Claude, Codex, Gemini, Copilot, Kiro) in fully permissive modes to perform system reconnaissance and exfiltrate credentials via GitHub CLI.
How Aqua Trivy VS Code Extension Supply Chain Compromise works
Between February 21 and 28, 2026, a GitHub account called hackerbot-claw — self-described as an 'autonomous security research agent powered by claude-opus-4-5' — conducted a week-long automated attack campaign targeting CI/CD pipelines across major open source repositories. The bot systematically scanned public repositories for exploitable GitHub Actions workflows, using a vulnerability pattern index with 9 classes and 47 sub-patterns.
The campaign targeted 7 repositories: microsoft/ai-discovery-agent, DataDog/datadog-iac-scanner, avelino/awesome-go (140k+ stars), ambient-code/platform, project-akri/akri (CNCF), aquasecurity/trivy, and RustPython/RustPython (20k+ stars). The bot achieved arbitrary code execution in at least 4 targets and exfiltrated a GITHUB_TOKEN with write permissions from awesome-go.
Five distinct exploitation techniques were employed: (1) Pwn Request — pull_request_target workflow exploiting untrusted fork code checkout, injecting Go init() backdoor for token exfiltration via recv.hackmoltrepeat.com. (2) Direct Script Injection — raw curl-pipe-bash payload in version.sh. (3) Branch Name Injection — bash brace expansion and command substitution hidden in git branch names. (4) Filename Injection — Base64-encoded shell commands embedded in filenames processed by vulnerable workflows. (5) AI Prompt Injection — replacing CLAUDE.md project config to manipulate AI code reviewers.
The attack on Aqua Security's Trivy repository resulted in full repository compromise and theft of a personal access token. This stolen PAT was used to publish malicious versions 1.8.12 (Feb 27, 12:04 UTC) and 1.8.13 (Feb 28, 16:28 UTC) of the Trivy VS Code extension to the OpenVSX registry.
The malicious extension versions injected code into the workspace activation function pl(). On activation, the code executed commands targeting 5 AI coding CLIs in their most permissive modes: claude -p --dangerously-skip-permissions --add-dir /, codex exec --ask-for-approval never --sandbox danger-full-access, gemini prompt --yolo --no-stream, copilot --autopilot --yolo, and kiro-cli chat -a --no-interactive. All processes were spawned detached with stdio: 'ignore', making execution invisible to the user.
Version 1.8.12 contained a ~2,000-word prompt disguised as a forensic investigation role assignment, instructing AI agents to collect credentials, financial data, trade secrets, and internal communications, then exfiltrate through every available channel (email, Slack, Teams, ticketing systems). The prompt was engineered to work within AI safety guardrails by framing data theft as compliance-mandated forensic evidence preservation.
Version 1.8.13 contained a focused prompt instructing AI agents to enumerate installed tools, MCP servers, authentication tokens, and filesystem credentials, save findings to REPORT.MD, then use the authenticated gh CLI to create a repository named posture-report-trivy and push the report. The GitHub API defaults to public repository creation, though gh CLI defaults to private.
The exposure window lasted approximately 34 hours. Socket Security identified the malicious versions, contacted Aqua Security and the OpenVSX publisher (a former Aqua employee), who revoked the publishing token and removed affected versions by Feb 28 22:46 UTC. No public posture-report-trivy repositories have been found, suggesting impact was likely minimal. GHSA-8mr6-gf9x-j8qg was published but was itself created by the bot during the incident.
Notably, Claude Code (Sonnet 4) successfully detected and refused the AI prompt injection attack on ambient-code/platform, identifying it as a 'textbook AI agent supply-chain attack via poisoned project-level instructions' and posting detailed security warnings.
MITRE ATT&CK techniques used in TL-2026-0165
collection
T1005 Data from Local System; T1119 Automated Collection
defense-evasion
T1027 Obfuscated Files or Information; T1036.005 Match Legitimate Resource Name or Location; T1140 Deobfuscate/Decode Files or Information
exfiltration
T1048 Exfiltration Over Alternative Protocol; T1567.002 Exfiltration to Cloud Storage
execution
T1059.004 Unix Shell; T1059.007 JavaScript; T1204.002 Malicious File
command-and-control
discovery
T1082 System Information Discovery; T1083 File and Directory Discovery; T1518 Software Discovery
initial-access
T1195 Supply Chain Compromise; T1195.001 Compromise Software Dependencies and Development Tools; T1195.002 Compromise Software Supply Chain
credential-access
T1528 Steal Application Access Token; T1552.001 Credentials In Files; T1552.004 Private Keys
persistence
Affected products and versions in Aqua Trivy VS Code Extension Supply Chain Compromise
- Aqua Security — Trivy VS Code Extension
Vulnerable versions: 1.8.12; 1.8.13
Fixed in: 1.8.11 (last clean version) - avelino — awesome-go (GitHub repository)
Vulnerable versions: GitHub Actions workflows
Fixed in: Pending remediation - Microsoft — ai-discovery-agent (GitHub repository)
Vulnerable versions: GitHub Actions workflows
Fixed in: Pending remediation - DataDog — datadog-iac-scanner (GitHub repository)
Vulnerable versions: GitHub Actions workflows
Fixed in: Fixed via PRs #9, #11 - CNCF — project-akri/akri (GitHub repository)
Vulnerable versions: GitHub Actions workflows
Fixed in: Pending remediation
Remediation for Aqua Trivy VS Code Extension Supply Chain Compromise
Patches
- Remove Trivy VS Code extension versions 1.8.12 and 1.8.13 (already removed from OpenVSX)
- DataDog deployed emergency workflow fixes within 9 hours (PRs #9 and #11)
Immediate actions
- Uninstall Aqua Trivy VS Code extension versions 1.8.12 and 1.8.13 immediately
- Rotate all credentials accessible on machines during the exposure window (Feb 27-28)
- Check for unexpected GitHub repositories named posture-report-trivy
- Review shell history for invocations of claude, codex, gemini, copilot, or kiro-cli with permissive flags
- Audit GitHub Actions workflows for pull_request_target with untrusted checkout patterns
- Block hackmoltrepeat.com and recv.hackmoltrepeat.com at network perimeter
Workarounds
- Pin VS Code extensions to known-good versions
- Use VS Code Marketplace instead of OpenVSX where possible
- Disable automatic extension updates
- Configure AI coding assistants to require human approval for all operations
Longer-term hardening
- Implement GitHub Actions workflow hardening: use pull_request instead of pull_request_target
- Add author_association checks to all comment-triggered workflows
- Use environment variables instead of ${{ }} expression interpolation in bash contexts
- Restrict permissions in GitHub Actions to minimum required (contents: read)
- Add CLAUDE.md and similar AI config files to CODEOWNERS with mandatory maintainer review
- Implement extension verification and pinning for VS Code marketplace installs
- Deploy GitHub Actions security scanning (e.g., StepSecurity Harden-Runner)
- Never set allowed_non_write_users to wildcard (*) in AI code review workflows
Weaknesses (CWE) in Aqua Trivy VS Code Extension Supply Chain Compromise
CWE-94, CWE-829, CWE-502, CWE-78, CWE-863
Timeline of Aqua Trivy VS Code Extension Supply Chain Compromise
- hackerbot-claw GitHub account begins systematic scanning of public repositories for exploitable GitHub Actions workflows. Bot describes itself as 'autonomous security research agent powered by claude-opus-4-5'.
- hackerbot-claw begins iterating on awesome-go exploitation. Opens PRs #6058-#6061 with Go init() backdoors targeting pull_request_target workflow. First 4 attempts fail due to git fetch issues.
- Malicious Trivy VS Code extension version 1.8.12 published to OpenVSX registry at 12:04 UTC. Contains ~2,000-word forensic investigation prompt targeting 5 AI coding CLIs in permissive modes.
- DataDog deploys emergency workflow fixes within 9 hours: added author_association checks, moved expressions to environment variables, added permissions restrictions across 8 workflow files.
- Former Aqua employee (OpenVSX publisher) revokes publishing token and removes affected versions from OpenVSX at 22:46 UTC after Socket notification. Exposure window closes (~34 hours total).
- Socket Security contacts Aqua Security regarding malicious extension findings at 18:18 UTC. GHSA-8mr6-gf9x-j8qg advisory published (initially by the bot itself during the incident).
- Claude Code (Sonnet 4) detects and refuses AI prompt injection attack on ambient-code/platform PRs #732 and #733. Posts security warnings: 'textbook AI agent supply-chain attack via poisoned project-level instructions'.
- awesome-go PRs #6068 and #6069 succeed — GITHUB_TOKEN with contents:write and pull-requests:write exfiltrated to recv.hackmoltrepeat.com. Workflow logs confirm 5m37s execution time.
- Version 1.8.13 published to OpenVSX at 16:28 UTC with focused exfiltration prompt — targets gh CLI to create posture-report-trivy repository with harvested credentials.
- hackerbot-claw executes attacks across multiple targets: DataDog (filename injection), Microsoft (branch name injection), CNCF/Akri (direct script injection), ambient-code (AI prompt injection). Achieves code execution in at least 4 targets.
- Socket Security publishes full technical analysis. StepSecurity publishes hackerbot-claw campaign writeup documenting all 5 exploitation techniques and community webinar.
- As of 2026-05-29, the original Feb 2026 hackerbot-claw OpenVSX/Trivy extension incident is contained (malicious v1.8.12/1.8.13 removed Feb 28, PAT revoked, no public exfil repos found), but it is now tracked as the precursor to the broader, still-active "TeamPCP" campaign. Per Phoenix/SANS/Sysdig/Kaspersky, the same actor expanded to 110+ Trivy/Checkmarx tags, CanisterWorm npm, and ongoing May waves (TrapDoor, Laravel-Lang, mini Shai-Hulud).
Sources cited for Aqua Trivy VS Code Extension Supply Chain Compromise
- Socket Security — Unauthorized AI Agent Execution Code Published to OpenVSX in Aqua Trivy VS Code Extension
- StepSecurity — hackerbot-claw: AI-Powered Bot Exploiting GitHub Actions
- GHSA-8mr6-gf9x-j8qg — Malicious Trivy OpenVSX Extension Release
- hackerbot-claw GitHub Account
- awesome-go PR #6069 — Token Exfiltration via Go init() Backdoor
- Akri PR #783 — Direct Script Injection Attack
- Microsoft ai-discovery-agent PR #236 — Branch Name Injection
- DataDog PR #7 — Filename Injection Attack
- ambient-code PR #732 — AI Prompt Injection via CLAUDE.md
- Socket Security OpenVSX Package Analysis — Trivy 1.8.12
Threats related to Aqua Trivy VS Code Extension Supply Chain Compromise
Detection coverage for TL-2026-0165
As of 2026-03-02, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-0165 across Splunk SPL, Microsoft KQL and Sigma, covering 16 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.