Back to skill

Security audit

你聊我干

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent development-assistant purpose, but it gives remote chat content too much control over local file writes, follow-on work, dependency installation, and persistent memory.

Install only if you are comfortable letting the agent fetch a DeepSeek share page and create or modify local project files from it. Use an isolated workspace, review proposed paths before writes, avoid chats containing secrets, and do not allow dependency installation, command execution, overwrites, or memory persistence unless you explicitly approve them.

Vulnerability Patterns
  • 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
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (4)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:94
Finding

Untrusted Remote Chat Content Is Treated as Authoritative Agent Instructions

Content
View full analysis
.ext`. Infer filename from surrounding text. ### 6. Detect code fragments When DeepSeek runs out of space, it outputs fragments labeled with: - `关键代码片段` - `精简` / `实现要点` - `由于长度限制` - `参考 XXX 的结构自行实现` These are NOT complete files. Write them to `FRAGMENTS_TODO.md` with the target file they belong to, rather than as standalone `.swift` files. ### 7. Write files - Respect the project tree from step 4. - Deduplicate: if the same path appeared in multiple turns, write only the last version. - Complete files → write to their path. Fragments → write to `FRAGMENTS_TODO.md`. - Follow the same code style, naming, and patterns as existing code in the chat. - If the chat references a local repo, write files there. Otherwise create under a new project dir. ``` ```markdown Then proceed to implement the next unfinished task. ## Notes - The DeepSeek chat is the source of truth — don't override chat decisions with personal preferences. - Cache extracted content per URL to avoid re-reading within the same session. - Append new work to `memory/YYYY-MM-DD.md` so context persists across sessions. ``` ### Technical Analysis The skill retrieves content from a user-supplied DeepSeek page and directs the agent to treat that content as the “source of truth.” It also instructs the agent to follow the content's project structure, write its files, and proceed with implementation. A remote chat page is an untrusted input channel. Its author can include natural-language instructions, fabricated project requirements, deceptive file headers, or content designed to override the user's actual request. The workflow does not establish a boundary bet ...[truncated 1822 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:75
Finding

Remote File Headers Can Control Local Write Paths Without Confinement

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:25
Finding

Runtime Installation of an Unpinned npm Dependency

Content
View full analysis
&1 || npm install puppeteer ``` ### Technical Analysis If Puppeteer is unavailable, the skill invokes `npm install puppeteer` without an exact version, lockfile requirement, integrity verification, or explicit user approval. The effective package and transitive dependency graph can therefore change over time even though the audited skill package remains unchanged. The installation also depends on the ambient npm configuration and registry. A compromised registry, modified npm configuration, compromised package release, or unsafe dependency lifecycle behavior could introduce unintended code. npm installation can execute package lifecycle scripts with the permissions of the agent's user unless scripts are disabled. The command's `||` behavior means any failure of `require('puppeteer')`, including some environmental or module-loading errors, triggers installation rather than reporting the underlying problem. ### Attack Path 1. Puppeteer is absent or fails to load in the local browser-skill directory. 2. The dependency check returns a nonzero status. 3. The shell executes `npm install puppeteer`. 4. npm resolves the current package release and its transitive dependencies from the configured registry. 5. A compromised package, dependency, registry response, or lifecycle script executes during installation. 6. Malicious installation behavior runs with the filesystem and network privileges of the agent's operating-system account. ### Impact Assessment A successful supply-chain compromise could execute arbitrary code with the privileges of the user running the skill. This can expose files, environment variables, project data, and credentials access ...[truncated 283 chars]
Remediation
View remediation

T02 · Agent Memory Poisoning

Error
Location
SKILL.md:146
Finding

Remote-Derived Work Is Automatically Appended to Persistent Agent Memory

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (8)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README explicitly promises automatic extraction of code and writing files into a project structure, but it does not warn users that local files and directories may be created or overwritten based on untrusted chat content. In this skill's context, the source material comes from a remote share link and may contain unexpected paths or unsafe project layouts, so missing safety guidance increases the risk of destructive workspace changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README advertises that after extracting code, the skill will continue development automatically, which implies further edits and potentially command execution, but it provides no warning about broader workspace effects. Because the skill ingests remote conversational content and then performs follow-on development actions, users may be exposed to unintended code changes, unsafe builds, or execution of attacker-influenced instructions without informed consent.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs the agent to run npm install puppeteer if the package is missing, which expands behavior from reading a share link into modifying the local environment and pulling executable code from the network. Because the package install is triggered by remote content workflow rather than explicit user approval, it creates supply-chain and environment-tampering risk disproportionate to the stated skill purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill directs the agent to create project directories, write extracted files, generate README content, and place fragments on disk without an explicit warning or confirmation before modifying the filesystem. Since the input originates from an external chat page and may mention local repo paths, this creates a path for unintended overwrite, code injection into an existing repository, or silent persistence of untrusted content.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The instruction to append extracted work and context into memory/YYYY-MM-DD.md introduces persistent cross-session storage unrelated to merely reading a DeepSeek link. This can retain sensitive code, prompts, URLs, or project context beyond user intent, enabling data leakage across tasks or later misuse of stale private information.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The example instructs reading a third-party shared chat URL via browser automation without warning that external content will be fetched and processed. Shared chats may contain sensitive code, credentials, proprietary text, or prompt-injected instructions, so omitting a disclosure and trust boundary warning can mislead users into exposing data or treating imported content as safe.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The display name and tagline are entirely in Chinese, which indicates a language-specific presentation in the skill metadata. There is no accompanying opt-in, alternative locale, or justification that this skill is intended only for a Chinese-speaking region, so this appears to conflict with the language/locale policy requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The sample invocation is presented only in Chinese, which can imply a language-specific interaction pattern without documenting that other languages are acceptable. The file does not state that language is user-selectable or that the example is merely illustrative.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.