yuqing-bitable-and-label

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The skill mostly matches its stated sync-and-label purpose, but it sends sensitive tokens/data through under-bounded external provider flows, including a default plain-HTTP XiaoAi API endpoint and an undeclared optional OpenAI-compatible model gateway.

Install only if you are comfortable granting Feishu write access and XiaoAi API access. Before use, switch the XiaoAi base URL to HTTPS if available, verify the Feishu app is least-privilege, decide explicitly whether external OPENAI_* model labeling is allowed, and check whether any cron job or cached token files exist.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

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.

What this means

A network observer could potentially see or intercept the XiaoAi token and synchronized data when the default HTTP endpoint is used.

Why it was flagged

The skill requires a XiaoAi bearer token while the default XiaoAi API base URL is plain HTTP. The provided sync code uses that token as an Authorization bearer header when posting to the XiaoAi API, so credentials and source data may traverse an unencrypted channel unless the user overrides the URL.

Skill content
xiaoai_token ... required: true ... xiaoai_base_url ... default: "http://wisers-data-service.wisersone.com.cn"
Recommendation

Use an HTTPS XiaoAi endpoint, validate/allowlist the API host, and avoid sending bearer tokens to plain-HTTP or untrusted base URLs.

What this means

Bitable record content such as titles, body text, OCR text, and related metadata may be sent to a third-party or custom model gateway without the user noticing from the main skill manifest.

Why it was flagged

If OPENAI_API_KEY and OPENAI_MODEL are present, the labeling path sends record-derived prompts, including Bitable text fields, to an OpenAI-compatible model endpoint. SKILL.md permissions list only Feishu and XiaoAi network destinations, so this external model data flow is under-disclosed.

Skill content
OPENAI_BASE_URL = (os.getenv("OPENAI_BASE_URL") or "https://api.openai.com/v1").rstrip("/") ... url = f"{OPENAI_BASE_URL}/chat/completions" ... "messages": [{"role": "system", "content": system}, {"role": "user", "content": user}]
Recommendation

Declare the model-provider data flow and required OPENAI_* variables in SKILL.md, require explicit opt-in for external LLM labeling, and restrict OPENAI_BASE_URL to trusted endpoints.

What this means

Anyone with access to the skill directory during the token lifetime may be able to read a cached Feishu tenant token.

Why it was flagged

The skill obtains a Feishu tenant access token from the provided app credentials and caches it locally for performance. This is purpose-aligned for Feishu API access, but it creates a local credential artifact.

Skill content
TOKEN_CACHE_FILE = os.path.join(CACHE_DIR, 'tenant_token.json') ... json.dump({'token': data["tenant_access_token"], 'timestamp': time.time()}, f)
Recommendation

Store cached tokens with restrictive file permissions, document the cache location and lifetime, and clear the cache when uninstalling or rotating credentials.

What this means

The skill can add or update records and labeling fields in the target Feishu Bitable when invoked with valid app credentials.

Why it was flagged

The core workflow writes synchronized records and optional labels back into a Feishu Bitable. This mutation authority is expected for the skill's purpose, but users should understand that it changes third-party workspace data.

Skill content
先从小爱数据接口增量拉取数据写入飞书多维表,再对多维表做增量标注
Recommendation

Use a least-privilege Feishu app, test on a limited Bitable view first, and keep labeling limits and sync windows appropriate.

What this means

If the cron job is installed manually or already exists, the sync can continue running periodically using stored environment credentials.

Why it was flagged

The artifact includes documentation and scripts for recurring background synchronization. No install spec shows automatic cron installation, so this is a notice rather than proof of hidden persistence.

Skill content
已配置 cron,每 10 分钟执行一次:
```bash
*/10 * * * * /home/admin/.openclaw/workspace/skills/yuqing-data-to-bitable/sync.sh
```
Recommendation

Check crontab and the skill directory before and after installation, and only enable scheduled execution intentionally.