Feishu Doc Orchestrator

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

Overview

The skill mostly matches its Feishu document-conversion purpose, but it ships real-looking Feishu credentials and stores broad OAuth tokens, so it should be reviewed before use.

Before installing, remove the bundled Feishu config files, rotate any exposed app secret, configure your own Feishu app with minimal scopes, and understand that the skill can create/edit Feishu documents, change permissions, upload referenced local images, and leave tokens plus workflow logs on disk.

Static analysis

Static analysis findings are pending for this release.

VirusTotal

No VirusTotal findings for this skill version.

Malicious
0
Suspicious
0
Harmless
0
Undetected
64
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

The skill may use bundled application credentials instead of credentials the user intentionally configured, and the included secret may already be exposed.

Why it was flagged

The package includes a real-looking Feishu App ID and App Secret, not just a placeholder template, while registry metadata declares no primary credential.

Skill content
FEISHU_APP_ID=cli_a90...\nFEISHU_APP_SECRET=BS3x...\nFEISHU_API_DOMAIN=https://open.feishu.cn
Recommendation

Remove bundled secrets, rotate the exposed Feishu app secret, ship only a template config, and require users to provide their own credentials through a declared configuration path or environment variables.

What this means

A saved token can continue granting Feishu document access after the initial run, and compromise of the local token file could expose the user's Feishu account permissions.

Why it was flagged

The OAuth flow requests broad document/drive permissions plus offline access and persists access/refresh tokens to a local JSON file.

Skill content
scope = 'drive:drive docs:doc docx:document docs:permission.member:create offline_access' ... 'refresh_token': token_data.get('refresh_token') ... with open(token_path, 'w'
Recommendation

Use the minimum required Feishu scopes, store tokens with restricted file permissions or a credential store, clearly declare the token file path, and let users revoke or delete tokens easily.

What this means

Feishu browser login state may remain on disk after verification, which is convenient but sensitive.

Why it was flagged

The verifier is documented as using Playwright and automatically saving login state, which can persist browser session material.

Skill content
Playwright 文档验证(自动保存登录状态)
Recommendation

Use a dedicated browser profile/account for verification and document where login state is stored and how to delete it.

What this means

Any local image path included in the Markdown can be uploaded to Feishu as part of document creation.

Why it was flagged

Local image files referenced by the Markdown conversion flow are opened and uploaded to the Feishu media API.

Skill content
with open(image_path, 'rb') as f: ... requests.post(url, headers=headers, files=files, data=data)
Recommendation

Only convert trusted Markdown files, review local image references before running, and add file-type/size/path validation before upload.

What this means

Converted document content, document links, and run metadata may remain on disk after the task finishes.

Why it was flagged

The workflow intentionally persists parsed document blocks, document metadata, and logs under the local workflow directory.

Skill content
每一步的结果都保存到 `workflow/` 目录 ... blocks.json ... CREATED_DOCS.md + created_docs.json
Recommendation

Treat the workflow directory as sensitive, avoid converting confidential documents in shared folders, and delete intermediate files/logs when no longer needed.

What this means

Users who follow the setup will install packages from external sources without version pinning.

Why it was flagged

The README recommends manual installation of unpinned Python packages and a browser runtime, while no install spec declares or pins them.

Skill content
pip install playwright requests lark-oapi\nplaywright install chromium
Recommendation

Install in a virtual environment, pin dependency versions, and prefer a reviewed lockfile or declared install specification.