Back to skill

Security audit

onelap-ride-download

Security checks for vulnerabilities and agentic risk

Overview

The skill is purpose-aligned, but it handles private ride files and tokenized download links over plain HTTP without enough safeguards.

Review before installing. Use it only if you are comfortable letting the agent use your logged-in Onelap browser session to find and download personal activity files. Avoid sharing full FIT URLs, prefer HTTPS-only downloads if available, store files only in a location you choose, and treat the downloaded records as sensitive health and location data.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:55
Finding

Plaintext Transmission of Signed Download Tokens and Private Ride Data

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 55–65
Vulnerability Type: Sensitive data and bearer-like token transmission over plaintext HTTP
Risk Level: High

Vulnerable Code Snippet

text
http://fits.rfsvr.net/MAGENE_C416_2026-03-19-09-34-33_1078400_1773886046761.fit?e=1773892823&token=xxx
bash
# Create the destination directory
mkdir -p /home/ckboss/Downloads/onelap-rides-YYYYMMDD

# Download one file
curl -s -o "2026-03-19_09-34.fit" "http://fits.rfsvr.net/xxx.fit?token=xxx"

The same insecure HTTP URL pattern is repeated in the page-data example at line 108.

Technical Analysis

The documented workflow retrieves personal FIT activity records from an unencrypted http:// endpoint. The URL contains an expiration value and a token query parameter that functions like a temporary bearer credential: possession of a valid URL may be sufficient to retrieve the corresponding ride file.

Because HTTP provides neither transport confidentiality nor server authenticity, an attacker with a suitable network position could observe the complete request URL, capture its token, modify the server response, or redirect the request. The recommended curl invocation also suppresses output with -s and does not enable failure reporting, constrain redirect protocols, validate the expected content type, or verify that the resulting file is a valid FIT record. Consequently, an HTTP error page or attacker-controlled response may be saved under a trusted .fit filename without detection.

Attack Path

  1. A user invokes the Skill while authenticated to Onelap.
  2. The Skill extracts a time-limited FIT URL containing a download token.
  3. The documented command submits that URL over plaintext HTTP.
  4. An attacker monitoring or controlling a network segment observes the URL and token.
  5. Before expiration, the attacker reuses the captured URL to retrieve the private ride record.
  6. Alternatively, an active attacker intercepts the HTT ...[truncated 933 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require an official HTTPS endpoint for every download and reject all non-HTTPS FIT URLs before invoking curl.
  2. Use hardened download options, for example:
bash
curl \
  --fail \
  --show-error \
  --location \
  --proto '=https' \
  --proto-redir '=https' \
  --output "2026-03-19_09-34.fit" \
  "$FIT_URL"
  1. Validate that $FIT_URL has the expected HTTPS scheme and an allowlisted hostname before use.
  2. Do not print, persist, or include signed URLs in logs, reports, shell history, or examples containing real tokens.
  3. Download to a newly created, access-restricted temporary file and move it to the final location only after successful validation.
  4. Verify the HTTP status, expected content type, reasonable file size, and FIT file signature before treating the response as a valid activity record.
  5. Use restrictive permissions for downloaded personal records, such as a user-only directory and umask 077.
  6. If the service supports it, use short-lived, narrowly scoped tokens and invalidate them after successful retrieval.
  7. Avoid silent failure handling. Ensure that authentication failures, redirects to unexpected hosts, and invalid responses stop the workflow rather than producing misleading .fit files.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · SKILL.md (reported line 3)May include surrounding context.

md
---
name: onelap-ride-download
description: 从顽鹿竞技 (Onelap) 下载骑行记录 FIT 文件。用于批量导出用户的骑行数据。
metadata:
  openclaw:
    emoji: 🚴
    requires:
      bins: [curl]
      browser: true
---

# Onelap 骑行数据下载 Skill

从顽鹿竞技 (Onelap) 平台下载用户的骑行记录 FIT 文件。

## 使用场景

✅ **适用场景:**
- 备份骑行数据
- 导出数据到第三方平台(Strava、Garmin Connect 等)
- 本地分析骑行数据
- 批量导出指定时间段的骑行记录
- **按指定日期范围下载**(如"下载 3 月 16 号到 19 号的文件")

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill instructs the agent to extract and use authenticated FIT download URLs containing tokens, but it does not explicitly warn that these URLs are sensitive credentials and that the downloaded ride files are personal data transmitted over the network. In this context, omission increases the chance an agent logs, echoes, or mishandles tokenized URLs or exports user activity data without adequate privacy notice or minimization.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.