Tencent Cloud COS

WarnAudited by ClawScan on May 10, 2026.

Overview

This looks like a real Tencent COS integration, but its setup stores powerful cloud keys persistently and contains unsafe shell command construction that could run unintended commands.

Review the setup script before installing. If you use it, create a least-privileged Tencent CAM key for only the required bucket/actions, avoid exposing SSE mode, confirm destructive operations manually, and consider fixing the eval/quoting issues before providing real credentials.

Findings (6)

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 malformed or attacker-provided credential, bucket, domain, or service-domain value could cause unintended commands to run on the user's machine during setup.

Why it was flagged

Values supplied to setup are concatenated into a shell command and executed with eval, so crafted values could be interpreted as shell syntax during setup.

Skill content
--secret-id) SECRET_ID="$2"; ... local COSCMD_ARGS="-a $SECRET_ID -s $SECRET_KEY -b $BUCKET -r $REGION" ... eval coscmd config $COSCMD_ARGS
Recommendation

Remove eval, pass arguments as quoted arrays, validate allowed characters for region/bucket/domain fields, and avoid interpolating secrets into shell or node -e code.

What this means

These keys may allow upload, download, signing, and deletion of COS objects depending on their Tencent CAM permissions, and they remain available to future shells and local tools.

Why it was flagged

The setup persists Tencent Cloud API keys in shell startup files and also embeds them into the mcporter/cos-mcp command arguments.

Skill content
export TENCENT_COS_SECRET_ID="$SECRET_ID"; export TENCENT_COS_SECRET_KEY="$SECRET_KEY" ... local COS_MCP_ARGS="... --SecretId=$SECRET_ID ... --SecretKey=$SECRET_KEY"
Recommendation

Use a least-privileged Tencent CAM key scoped to only the needed bucket/actions, prefer environment or secret-manager handling over command-line args, and provide cleanup/rotation instructions.

What this means

Users have less assurance that the reviewed package identity matches the registry entry they intend to install.

Why it was flagged

The packaged _meta.json conflicts with the supplied registry metadata, which lists a different owner, slug, and version. That creates a provenance gap for a skill that installs code and handles cloud credentials.

Skill content
"ownerId": "kn75r0rammt45k8qe5we0sh63580c5y0", "slug": "tencent-cos-skill", "version": "1.0.6"
Recommendation

Reconcile registry and packaged metadata, publish from a verifiable source, and include a homepage/repository so users can confirm provenance.

What this means

Future installs could receive different dependency versions than the reviewed artifacts.

Why it was flagged

External packages are installed without version pins. This is expected for the COS integration, but it makes the installed code depend on current package-registry contents.

Skill content
node package: mcporter; node package: cos-mcp; node package: cos-nodejs-sdk-v5
Recommendation

Pin dependency versions or provide a lockfile/reproducible install path, especially for setup that handles credentials.

What this means

A mistaken key or prefix could delete cloud objects, including many objects at once.

Why it was flagged

The skill documents object deletion and forced recursive deletion. That is purpose-aligned for storage management, but it is high-impact.

Skill content
delete | `node scripts/cos_node.mjs delete --key <key>` ... 递归删除 | `coscmd delete -r <cosdir> -f`
Recommendation

Require explicit user confirmation for delete, recursive delete, move, and overwrite operations, and verify exact bucket/key/prefix before running them.

What this means

If enabled without network restrictions, other clients that can reach the SSE service may be able to invoke COS operations.

Why it was flagged

The template includes an optional SSE MCP server carrying COS credentials. It is documented and not the default setup path, but it changes the data boundary from stdio to a listening service.

Skill content
"cos-mcp-sse": { "command": "npx", "args": ["cos-mcp", "--connectType=sse", "--port=3001"], "env": { "TENCENT_COS_SECRET_KEY": "<替换为腾讯云 API 密钥 Key>" } }
Recommendation

Prefer stdio mode unless SSE is needed, bind any SSE server to localhost only, restrict access with firewall controls, and do not expose it to untrusted networks.