Feishu Sheet Links

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its stated Feishu-link extraction purpose, but it can reuse an existing logged-in Chrome session and has unsafe output filename handling that users should review before installing.

Use this only on Feishu documents and link lists you trust. Before using the download option, review the extracted URLs, choose a safe output directory, and avoid running it against an existing logged-in Chrome debugging session unless you intentionally want that session used.

Findings (4)

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 Feishu page may be accessed using an existing browser session rather than a clean public-only context, which can blur the boundary between public scraping and authenticated account access.

Why it was flagged

The script prefers attaching to an already-running Chrome debug instance. That browser may have existing Feishu cookies or other logged-in state, while the skill is presented as working with public documents only.

Skill content
const existingWs = await findExistingChrome(); ... if (existingWs) { cdp = await CdpSession.connect(existingWs); }
Recommendation

Default to the isolated profile, make existing-session reuse opt-in, and clearly warn users when a logged-in Chrome profile may be used.

What this means

A malicious or unusual spreadsheet/link JSON could cause Markdown files to be written somewhere other than the folder the user selected.

Why it was flagged

The sheet/month name from the links JSON is used directly in a filesystem path, while only the title is sanitized. A crafted sheet name containing path separators could write outside the intended output directory.

Skill content
let fname = `${month}-${slug}.md`; let fpath = path.join(outDir, fname); ... await writeFile(fpath, md, "utf-8");
Recommendation

Sanitize the sheet name as well as the title, and verify the resolved output path remains inside the chosen output directory before writing.

What this means

If the spreadsheet contains unexpected links, the tool may automatically visit them during batch download.

Why it was flagged

The downloader opens every URL from the extracted links file in Chrome. This is expected for batch downloading, but it means spreadsheet-controlled links drive browser navigation.

Skill content
for (const l of links) items.push({ month, text: l.text, url: l.url }); ... const { targetId } = await cdp.send<{ targetId: string }>("Target.createTarget", { url });
Recommendation

Review the extracted URL list before downloading, and consider adding scheme/domain allowlists for Feishu article downloads.

What this means

The runtime used to execute the scripts may be fetched dynamically rather than coming from a pinned, preinstalled toolchain.

Why it was flagged

The workflow runs Bun through `npx -y` without a pinned version, while registry requirements do not declare Bun or Chrome as required binaries.

Skill content
npx -y bun "${SKILL_DIR}/scripts/main.ts" "<spreadsheet-url>" -o feishu-links.json
Recommendation

Declare Bun and Chrome in metadata, prefer a locally installed Bun binary, and pin versions where practical.