Back to skill

Security audit

Feishu Bitable Merger

Security checks for vulnerabilities and agentic risk

Overview

This Feishu table merger performs the advertised read-and-write merge workflow, with operational cautions but no hidden, deceptive, persistent, or unrelated behavior found.

Install only if you are comfortable granting Feishu Bitable read and write access. Test on a copy or non-production table first, confirm the source and target URLs carefully, and keep a backup because each run creates persistent target-table records.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Note
Location
package-lock.json:19
Finding
Dependency Resolved Through a Third-Party npm Registry Mirror## Vulnerability Details **File Location**: `package-lock.json`, lines 19-23 **Vulnerability Type**: Supply-chain exposure through an unofficial dependency source **Risk Level**: Low ### Vulnerable Code ```json "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "license": "MIT", "engines": { "node": ">=18" } } ``` ### Technical Analysis The lockfile directs package managers to download `commander` from `registry.npmmirror.com`, a third-party npm registry mirror, rather than the official npm registry. This introduces an additional external trust boundary into the installation process. The included SHA-512 integrity value provides meaningful protection: a mirror cannot silently replace the referenced package with different content unless the replacement also matches the pinned hash. Therefore, no direct malicious dependency substitution is demonstrated by the audited files. Exploitation would generally require simultaneous compromise or malicious modification of both the dependency artifact reference and its integrity value, or compromise of the lockfile before installation. The mirror can nevertheless affect dependency availability and artifact delivery. Depending on organizational policy, use of an unapproved registry can also bypass registry-level provenance, monitoring, allowlisting, or retention controls applied to the official or organization-controlled registry. ### Attack Path 1. A user or CI system installs the project using the committed lockfile. 2. The package manager follows the `resolved` URL and contacts the third-party mirror. 3. An attacker compromises the project lockfile, the package publication workflow, or another mechanism capable of changing both the artifact reference and integrity hash ...[truncated 1050 chars]
Remediation
## Remediation Suggestions 1. Regenerate the lockfile using the official npm registry or an organization-controlled, authenticated registry: ```bash npm config set registry https://registry.npmjs.org/ rm -rf node_modules package-lock.json npm install ``` 2. Review the regenerated lockfile and verify that dependency `resolved` URLs point only to approved registries. 3. Continue retaining and enforcing SHA-512 integrity metadata. 4. Enforce the approved registry in CI through a committed `.npmrc` or equivalent build policy: ```ini registry=https://registry.npmjs.org/ ``` 5. Use `npm ci` in automated builds so installation fails when the manifest and lockfile differ. 6. Add dependency provenance, vulnerability, and lockfile-change review checks to CI. 7. Treat changes to registry URLs, dependency versions, and integrity hashes as security-sensitive code-review events.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (6)

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The README shows merge commands that write into a target Feishu Bitable but does not explicitly warn that execution will modify destination data and may create irreversible changes such as duplicate or incorrect records. In a data-merging tool with write permissions, unclear documentation increases the chance of accidental destructive or unintended updates by users.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill performs write operations against a target Feishu table and also advertises incremental merge and deduplication, but the user-facing description does not clearly warn that records in the target may be created, modified, or removed/merged as part of the operation. This can lead users to run the skill without understanding that it changes persistent data, increasing the risk of accidental data loss, corruption, or unintended bulk updates.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The skill sends user-supplied source and target table URLs and retrieves full table metadata, fields, and records through external tool calls, but does not clearly warn the user that potentially sensitive table contents will be accessed and transferred. This can lead to accidental exposure or cross-table copying of confidential business data, especially when used by an agent on behalf of a user.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill performs a write operation that creates records in the destination table immediately after processing, without a confirmation prompt, dry-run mode, or explicit destructive-action warning. In an agent/automation context, this increases the chance of unintended data modification, duplication, or corruption if the wrong target URL or mappings are supplied.

Natural-Language Policy Violations

Low
Confidence
84% confidence
Finding
A natural-language policy issue exists when a skill effectively forces a specific language without offering user choice or documenting the locale constraint. This README presents all user instructions in Chinese and does not indicate that the skill is China/Chinese-specific or provide an alternative language option.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"author": "铲子",
  "license": "MIT",
  "dependencies": {
    "commander": "^12.0.0"
  }
}
Confidence
90% confidence
Finding
The dependency uses a caret range (^12.0.0), which permits automatic installation of future compatible releases rather than a single fixed version. This can expose consumers to supply-chain risk if a later published version is compromised, regresses security, or behaves incompatibly, though the package.json alone does not show active exploitation.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
index.js:14