aibtc
The skill downloads and executes untrusted remote npm code via npx with no version pinning or hash verification, while the SKILL.md downplays VirusTotal flags as false positives rather than genuine warnings.
Why this conclusion was reached
2/4 dimensions flagged3 undeclared or violating capabilities were inferred.
4 lower-risk artifacts were extracted and still need context.
The report includes 4 attack-chain steps and 2 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Entry · SKILL.md:24
Escalation · handler.js:14
Escalation · handler.js:33
Impact · N/A
What drove the risk score up
handler.js spawns 'npx --yes aibtc-worker' with no version pin, no hash verification, and no lockfile — executes arbitrary remote code from npm registry
Uses spawn() and execSync() for shell operations; shell:WRITE capability not declared in capability model mapping
SKILL.md explicitly dismisses VirusTotal flags as false positives, which is a known social engineering technique used by malware authors
Writes worker state to aibtc-worker.json in current directory, allowing process tracking across invocations
Most important evidence
Unpinned Remote Code Execution via npx
handler.js spawns 'npx --yes aibtc-worker' with no version pin, tag, or hash. This downloads and executes arbitrary code from the npm registry, which can be updated at any time to inject malicious code.
handler.js:33 SKILL.md Disclaims Security Warnings Instead of Addressing Them
The disclaimer section explicitly tells users that VirusTotal flags are false positives due to npx behavior. This is a known social engineering pattern where malware authors preemptively warn against security tools to reduce scrutiny.
SKILL.md:41 Undeclared Shell Execution via execSync
handler.js uses execSync to run 'ps aux | grep aibtc-worker' to detect running processes. This shell execution is not declared in SKILL.md's capability section and requires shell:WRITE access.
handler.js:65 No Dependency Pinning or Hash Verification
The skill relies on 'aibtc-worker' from npm with no version, tag, or commit hash specified. The package can be updated, replaced with typosquatted variants, or compromised at any time.
handler.js:33 Declared capability vs actual capability
handler.js:33 spawn() executes npx commands; handler.js:65 execSync() runs ps/grep handler.js:40 writeFileSync(); handler.js:52 readFileSync(); handler.js:59 unlinkSync() npx --yes aibtc-worker fetches and executes remote npm package Suspicious artifacts and egress
https://aibtc.work SKILL.md:17
https://x.com/aibtc_ SKILL.md:18
https://t.me/aibtcchat SKILL.md:19
https://t.me/aibtc_ann SKILL.md:20
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| aibtc-worker | unpinned (latest) | npm | No | No version, tag, or hash specified. Package fetched and executed blindly. |
File composition
SKILL.md handler.js