Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Fit Coord Converter

v1.1.0

Automatically convert GPS coordinates in FIT files from GCJ-02 to WGS-84 format and optionally upload to Strava. ALWAYS USE when the user uploads a .fit file...

0· 16·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
Capability signals
Requires OAuth token
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
The code and instructions match the stated purpose (parsing FIT files, converting GCJ-02 to WGS-84, and optionally uploading to Strava). However, the SKILL metadata declares no credentials or env vars while the SKILL.md and scripts include and rely on a hard-coded Strava access token and client secret — this is inconsistent with the declared requirements.
!
Instruction Scope
SKILL.md tells the agent to automatically process any detected .fit attachment ('DO NOT ask for confirmation'), immediately convert the file, and send it back. Automatic processing of user-uploaded files without explicit consent is a privacy/consent risk and expands the agent's runtime scope beyond a conservative behaviour. It also instructs use of embedded credentials for uploads.
Install Mechanism
There is no install spec (instruction-only), and code files are bundled with the skill (convert_fit.py, upload_strava.py). No external downloads are used, which lowers supply-chain risk. However, runtime dependencies (fitparse, requests) are used but not declared in metadata.
!
Credentials
Although requires.env is empty, the SKILL.md and scripts include hard-coded Strava credentials (client id, client secret, and an access token) and the upload script uses a fixed ACCESS_TOKEN. The skill therefore expects privileged access but does not declare this in its metadata. Hard-coded tokens are high-risk (could belong to someone else, be revoked, or leak activity data).
!
Persistence & Privilege
always:false (good) and the skill does not request system-wide config. However SKILL.md's auto-trigger instructions effectively grant the skill autonomous behavior on any detected .fit file (process immediately without asking). That behavioural instruction increases privacy risk even though the skill isn't flagged as always:true.
Scan Findings in Context
[hardcoded_secret_strava_token] unexpected: SKILL.md lists a Client Secret and an Access Token and scripts/upload_strava.py hard-codes ACCESS_TOKEN. A conversion/upload skill should declare required credentials (env vars) instead of embedding secrets.
[undeclared_runtime_dependencies] unexpected: scripts/convert_fit.py imports fitparse and scripts/upload_strava.py imports requests, but the skill metadata does not declare these dependencies or how to install them. This mismatch can cause runtime failures or hide additional permission needs.
[auto_processing_without_consent] unexpected: SKILL.md explicitly instructs 'DO NOT ask for confirmation' and to auto-process .fit attachments. This is a behavioural red flag (privacy/consent) even if conversion itself is benign.
What to consider before installing
This skill does what it promises (convert FIT coordinates and optionally upload to Strava), but I recommend caution before installing or enabling it: - Do not trust the hard-coded Strava credentials in the SKILL.md/scripts. They should be removed and replaced by properly declared environment variables (e.g., STRAVA_ACCESS_TOKEN) so you can supply your own token, and the skill metadata should list them. - The skill's runtime instructions automatically process any detected .fit attachment without asking the user first. If you care about privacy or explicit consent for file processing, do not enable or call the skill until the behavior is changed to require user confirmation. - The package uses Python libraries (fitparse, requests) that are not declared; ensure these dependencies are installed from trusted sources in a controlled environment. - Treat the embedded token as potentially compromised: it may belong to someone else or be revoked; do not rely on it for your account. If you want Strava upload, supply your own token and rotate it regularly. - If you proceed, prefer running the included scripts locally (offline) or in a sandbox where you control outgoing network access, and verify the code (especially binary replacement/search logic) on sample files before processing real data. If you want, I can: (a) produce a small checklist to harden this skill (remove embedded secrets, declare env vars, require explicit consent), or (b) show how to modify the SKILL.md to require confirmation before processing and to reference declared env vars for Strava.

Like a lobster shell, security has layers — review code before you run it.

latestvk97c8ar9azp6myy87c7hrgrc7d848n11

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments