Back to skill

Security audit

Publish Antigravity Rotator

Security checks across malware telemetry and agentic risk

Overview

The skill has a real account-rotation purpose, but it exposes powerful account and session controls through an unauthenticated network dashboard and handles credentials in risky ways.

Install only if you intentionally want this skill to manage Antigravity account rotation and live session switching. Do not expose port 18090 to a LAN or the internet; bind it to localhost or add authentication first. Back up OpenClaw auth profiles, review the cron entry before enabling it, use dedicated low-risk accounts where possible, and treat config.json plus auth profile files as sensitive secrets.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill documentation describes actions that require environment access, shell execution, and network communication, yet no permissions are declared. This creates a transparency and consent problem: users may run setup, dashboard, and rotation tasks without realizing the skill can inspect local state, invoke binaries, and contact external services.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The documented purpose understates several sensitive behaviors: automatic credential discovery, token refresh, direct API calls, local auth profile modification, account removal via web API, and background warmup actions. In a credential-heavy multi-account ops skill, hidden or under-disclosed auth manipulation is especially dangerous because it can alter account routing, consume quotas, and expand access without informed user approval.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The dashboard binds to 0.0.0.0 and exposes POST /api endpoints that can add/remove accounts, sync credentials, and rewrite config.json without any authentication, authorization, or CSRF protection. In the context of an ops dashboard, these are real state-changing administrative actions, so any network-reachable party can tamper with account rotation behavior and monitored identities.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The triggerRotate API lets any caller invoke a server-side subprocess via exec(), causing operational actions from an unauthenticated HTTP request. Even though the command string is not directly user-controlled here, this is still dangerous because it enables remote execution of privileged local automation and can be abused for denial of service, unintended rotations, or chaining with PATH/binary hijacking issues.

Context-Inappropriate Capability

Medium
Confidence
98% confidence
Finding
This code builds shell command strings containing sensitive OAuth material and executes them via execSync with curl. Because access tokens, refresh tokens, project IDs, and headers are interpolated into shell syntax without safe argument separation, a maliciously crafted value in config or auth data could trigger command injection, while also exposing secrets to process listings and shell parsing.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The documentation says the dashboard can automatically scan and load accounts previously authenticated via the local tool, but it does not clearly warn users that stored credentials/account metadata will be enumerated and imported. Automatic credential discovery increases the risk of unintended account exposure, especially on shared machines or multi-profile environments.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
Refresh tokens and quota requests are sent to external endpoints without any explicit disclosure, and the implementation uses shell commands that may leak those secrets through process arguments, logs, or debugging tools. In a credential-rotation skill, silently transmitting and handling OAuth secrets this way materially increases the risk of token theft and account compromise.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The code overwrites the auth profile store and switches the active VIP profile automatically, modifying credential state for multiple accounts without an explicit warning, confirmation, backup, or integrity controls. If this logic is triggered unexpectedly or misconfigured, it can redirect future sessions to a different account, corrupt auth state, or overwrite valid tokens.

External Transmission

Medium
Category
Data Exfiltration
Content
refresh_token: refreshToken,
            grant_type: 'refresh_token'
        }).toString();
        const cmd = `curl -s --connect-timeout 10 --retry 1 -X POST "${this.REFRESH_TOKEN_URL}" -d "${postData}"`;
        try {
            const output = execSync(cmd, { encoding: 'utf8', timeout: 35000 });
            const json = JSON.parse(output);
Confidence
98% confidence
Finding
curl -s --connect-timeout 10 --retry 1 -X POST "${this.REFRESH_TOKEN_URL}" -d

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

Detected: suspicious.dangerous_exec, suspicious.env_credential_access, suspicious.exposed_secret_literal

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
index.js:39

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/dashboard.js:22

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/rotator.js:33

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/dashboard.js:10

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/rotator.js:24