Back to skill

Security audit

财经早报 Morning Briefing

Security checks for vulnerabilities and agentic risk

Overview

This skill describes a scheduled financial news briefing that fetches public market/news sources, writes a local Markdown archive, and can announce a summary to WeChat; the behavior is disclosed and purpose-aligned, though the referenced script is not included for review.

Before installing, verify the missing referenced script if provided separately, run it manually first, use a virtual environment for dependencies, confirm the WeChat channel is the intended destination, and check the Desktop output folder for retained Markdown archives.

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

Warning
Location
SKILL.md:29
Finding
Unpinned Third-Party Python Dependency## Vulnerability Details **File Location**: `SKILL.md`, line 29 **Vulnerability Type**: Unpinned and unverifiable third-party dependency **Risk Level**: Medium ```bash pip install requests ``` ### Technical Analysis The installation command resolves and installs the current version of `requests` from the package index configured in the user's environment. The project does not specify an audited version, verify distribution hashes, provide a lockfile, or explicitly select a trusted package index. Consequently, installations are not reproducible and may retrieve dependency versions that were not reviewed with the skill. The risk becomes exploitable if the configured index is malicious or compromised, package resolution is redirected, or a future dependency release is compromised. ### Attack Path 1. A user follows the Quick Start instructions and executes `pip install requests`. 2. `pip` contacts the package index configured in the user's environment. 3. The resolver selects the latest compatible, unrestricted release and its transitive dependencies. 4. If the selected distribution or package index has been compromised, attacker-controlled package installation logic or runtime code is installed. 5. The malicious code executes with the privileges of the user running `pip`, either during installation or when the dependency is imported by the skill. This path requires compromise or manipulation of the dependency supply chain; the reviewed file does not itself contain a malicious package or index URL. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the installing user. This may expose files, environment variables, application credentials, and network resources accessible to that account. If installation is performed from a privileged environment, the impact may extend to system-wide Python packages and other users or applications relying on that environment. The reviewed project contains no implement ...[truncated 90 chars]
Remediation
## Remediation Suggestions 1. Pin `requests` and all transitive dependencies to versions that have been reviewed and tested. 2. Store dependency declarations in a requirements or lock file rather than relying on an unrestricted interactive installation command. 3. Generate and verify cryptographic hashes for every resolved distribution, such as by using `pip install --require-hashes`. 4. Explicitly use a trusted package index and prevent fallback to untrusted or unintended indexes. 5. Install dependencies inside a dedicated virtual environment with ordinary user privileges. 6. Add automated dependency vulnerability and integrity scanning to the release process. 7. Update the documentation to use a reproducible command, for example: ```bash python3 -m venv .venv . .venv/bin/activate python3 -m pip install --require-hashes -r requirements.txt ```
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The cron example enables unattended execution with network access and outbound WeChat delivery, but the documentation does not clearly warn that it will repeatedly fetch remote content and automatically post summaries to an external channel. This can lead to unintended data egress, surprise outbound messaging, or abuse if the fetched content or configuration is changed without the user fully understanding the automation scope.

Missing User Warnings

Low
Confidence
91% confidence
Finding
This markdown file describes that the skill stores a complete Markdown archive locally and later specifies a default output path on the user's desktop. That is a user-data-affecting behavior, but the description does not include any warning or disclosure about automatic local file creation, retention, or overwriting considerations.

Static analysis

No suspicious patterns detected.