Back to skill

Security audit

Qq Zone Photo Tool Free

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a QQ Zone photo tool, but it mixes in unrelated activation text and recommends weak handling of QQ session cookies.

Review this skill before installing. Use it only for QQ Zone album tasks, avoid relying on the unrelated project-management trigger text, and do not store QQ cookies in the project directory unless you can protect the file with strict permissions and keep it out of backups, logs, and version control.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:125
Finding

Unpinned Third-Party Dependencies Installed at Runtime

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:125-127
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: Medium

bash
### Environment Setup

```bash
# Dependencies
pip install requests beautifulsoup4
text

### Technical Analysis

The setup instructions install `requests` and `beautifulsoup4` without version constraints, package hashes, a lockfile, or an explicitly trusted package index. Consequently, the artifacts installed can change between executions even though the reviewed Skill remains unchanged.

Although both package names are established packages and the file does not intentionally reference a malicious source, an upstream account compromise, malicious release, package-index compromise, or unexpected incompatible release could cause unreviewed code to enter the runtime environment. Python packages and their transitive dependencies can execute package-controlled code during installation or later when imported by an implementation.

The project does not include the referenced implementation scripts, so it is not possible to verify how these dependencies would be imported or used.

### Attack Path

1. An attacker compromises an upstream dependency release, one of its transitive dependencies, or the package distribution channel.
2. The attacker publishes a malicious version that still satisfies the unconstrained installation command.
3. A user or agent follows the documented setup procedure and runs `pip install requests beautifulsoup4`.
4. Pip resolves and installs the attacker-controlled artifact because no reviewed version or hash is enforced.
5. Malicious package code executes during installation or when the package is subsequently imported.

### Impact Assessment

Exploitation could execute code with the privileges of the user running pip or the eventual Skill implementation. Depending on those privileges, an attacker could read or modify user-accessible
...[truncated 266 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to an explicitly reviewed version.
  2. Pin transitive dependencies through a generated lockfile.
  3. Require cryptographic hashes, such as with a hash-locked requirements.txt and pip install --require-hashes.
  4. Configure pip to use an explicitly trusted package index and disallow unexpected extra indexes.
  5. Install dependencies in an isolated virtual environment under a non-privileged account.
  6. Add automated dependency vulnerability and integrity scanning.
  7. Document a controlled update process in which new dependency versions are reviewed and lockfiles are regenerated.

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:156
Finding

QQ Session Cookie Stored in a Predictable Plaintext File

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:156-163
Vulnerability Type: Insecure storage of authentication material
Risk Level: High

yaml
qzone_config:
  auth:
    method: "cookie"              # cookie | qrcode
    cookie_file: "./qzone_cookies.json"
    qrcode_timeout: 120
# ...
  download:
    default_dir: "./downloads"

Technical Analysis

The recommended configuration directs the Skill to use ./qzone_cookies.json, a predictable project-relative file, for QQ authentication cookies. Session cookies are bearer credentials: any party able to obtain a valid cookie may be able to reuse the authenticated session without knowing the account password.

The documentation does not require encryption, owner-only file permissions, a protected per-user credential directory, exclusion from version control and backups, redaction from logs, or secure deletion after logout. Storing the cookie under the working directory also increases the likelihood that it will be copied, archived, shared, or accidentally committed with project files.

The package contains no implementation scripts, so the exact file permissions, cookie contents, logging behavior, expiry handling, and server-side protections cannot be verified. The finding therefore concerns the explicitly recommended configuration and missing safeguards.

Attack Path

  1. A user authenticates to QQ Space and exports or receives a valid session cookie.
  2. The Skill implementation stores that credential in the documented ./qzone_cookies.json location.
  3. The file is exposed to another local process or user, included in a backup, copied with the project, uploaded as an artifact, or accidentally committed to source control.
  4. An attacker extracts the session cookie from the JSON file.
  5. The attacker injects the cookie into an HTTP client or browser and attempts to reuse the authenticated QQ session.
  6. If the session remains valid and QQ do ...[truncated 561 chars]
Remediation
View remediation

Remediation Suggestions

  1. Store session credentials in the operating system's credential manager or another dedicated secret store rather than the project directory.
  2. If file-backed storage is unavoidable, use a protected per-user configuration directory and create the file with owner-only permissions, such as mode 0600 on supported systems.
  3. Encrypt credentials at rest with keys held outside the project directory.
  4. Add the cookie filename and equivalent credential files to .gitignore, packaging exclusions, backup exclusions, and artifact-upload exclusions.
  5. Never print cookies in command output or logs; redact cookie headers and authentication diagnostics.
  6. Minimize cookie lifetime and stored scope, remove local credentials on logout, and provide a documented revocation procedure.
  7. Warn users not to place the credential file in shared, synchronized, or publicly readable directories.
  8. Prefer QR-code authentication backed by short-lived tokens when the service supports it securely.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The description contains broad, mismatched trigger phrases unrelated to the skill's domain, making it eligible for activation on many unintended requests. In an agent ecosystem, overbroad trigger text is dangerous because it can hijack task selection and grant a skill with exec/write access opportunities to act in contexts the user never intended.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The capability coverage section enumerates vague keyword triggers such as project management and team collaboration, which are far broader than the actual function of the skill. This creates prompt-based overmatching risk and makes accidental or abusive invocation more likely in unrelated workflows, amplified by the presence of local execution capability.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest description for a QQ Zone photo tool includes unrelated project-management, task-planning, and team-collaboration trigger language. This can cause the agent to route unrelated user requests into a skill that has read/write/exec capabilities, increasing the chance of inappropriate activation and unintended command execution or data handling.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The capability coverage statement explicitly claims support for project management and other non-photo-management scenarios that the skill does not implement. This misrepresentation broadens the apparent scope of the skill and may cause unsafe invocation under unrelated prompts, especially because the skill exposes exec and write tools.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documentation describes downloading photos to a local output path but does not clearly warn users that the skill writes files to disk or explain where data will be stored and overwritten. This can lead to unintended local file creation, privacy surprises, or confusion about storage behavior in environments where write operations are sensitive.

Content

No source excerpt is available for this finding.