Model Pricing Sync

Security checks across malware telemetry and agentic risk

Overview

The skill matches its pricing-sync purpose, but it can use a local Lark/Feishu identity to create, overwrite, and delete spreadsheet tabs without clearly declaring that account-level access.

Install only if you are comfortable giving the skill access to a configured Lark/Feishu CLI account. Before running push, verify the spreadsheet destination, back up any important tabs, and expect the managed sheets to be deleted and recreated. Review the dependency installation steps and keep sheet_state.json protected.

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI02: Tool Misuse and Exploitation
Medium
What this means

A push can remove existing spreadsheet tabs with the managed titles and replace their contents, which may overwrite work if the target spreadsheet is wrong or reused.

Why it was flagged

The push workflow deletes existing managed sheets and recreates them in the Lark spreadsheet; SKILL.md only says to run push and does not clearly call out this destructive replacement behavior or require confirmation.

Skill content
if old_id:
                self.batch_update_sheets(spreadsheet_token, [{"deleteSheet": {"sheetId": old_id}}])
Recommendation

Before pushing, show the spreadsheet URL/token and exact sheets that will be deleted/recreated, require user confirmation, and document backup or rollback steps.

#
ASI03: Identity and Privilege Abuse
Medium
What this means

The skill may act with the permissions of the locally configured Lark/Feishu account, including creating spreadsheets and modifying sheet contents.

Why it was flagged

The skill calls Lark APIs through a local CLI identity, but the registry metadata declares no primary credential or required environment/config path.

Skill content
args = ["api", method.upper(), path, "--as", self.identity]
Recommendation

Declare the Lark/Feishu credential requirement, document the required account permissions, and let the user choose or confirm the identity before any push.

#
ASI02: Tool Misuse and Exploitation
Low
What this means

Some sites may treat this as bot-evasion behavior, even though the code appears to collect public pricing pages and separately detects blocked/CAPTCHA pages.

Why it was flagged

The Playwright collector masks automation indicators while scraping pricing pages. This is related to collection, but it is not described in SKILL.md.

Skill content
STEALTH_USER_AGENT = "Mozilla/5.0 ... Chrome/135.0.0.0 Safari/537.36"
Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
Recommendation

Disclose the browser automation and stealth settings, and advise users to respect each source site's access rules.

#
ASI04: Agentic Supply Chain Vulnerabilities
Low
What this means

Users may install newer or different dependency versions than the author tested, and the global Lark CLI becomes part of the trusted execution path.

Why it was flagged

The dependency and global CLI installation are purpose-aligned, but versions are not pinned and the registry lists no required binaries.

Skill content
playwright>=1.40.0
# 3. npm install -g @larksuiteoapi/cli (for Feishu/Lark integration)
Recommendation

Pin tested dependency versions, declare the Lark CLI as a required binary, and provide reproducible installation instructions.

#
ASI06: Memory and Context Poisoning
Low
What this means

Future runs will reuse the saved target, so a stale or modified sheet_state.json could cause data to be pushed to an unintended spreadsheet.

Why it was flagged

The skill persists the target spreadsheet token, URL, identity, and managed sheet IDs for reuse on later pushes.

Skill content
"spreadsheet_token": spreadsheet_token,
"url": url,
"identity": identity,
...
save_sheet_state(new_state, sheet_state_file)
Recommendation

Protect or review sheet_state.json, and have the skill display the saved destination before each push.