Back to skill

Security audit

1lou Search

Security checks for vulnerabilities and agentic risk

Overview

This skill matches its stated torrent-search purpose, but it exposes qBittorrent credentials and uses plaintext HTTP to control a NAS downloader.

Review this carefully before installing. The qBittorrent password should be treated as exposed and rotated, and the skill should be changed to use user-supplied secrets, HTTPS or a trusted private network, secure temporary cookie handling, and explicit confirmation before adding torrent files to NAS storage.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:94
Finding

Hardcoded qBittorrent Credentials Transmitted over Plaintext HTTP

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 94–96 and 109–117
Vulnerability Type: Hardcoded credentials, plaintext credential transmission, and insecure session-cookie handling
Risk Level: High

Vulnerable Code

markdown
### 7. 添加到qBittorrent
- qBittorrent地址:192.168.1.38:8085
- 账号:boring737
- 密码:Conan2015
bash
# 登录qBittorrent
curl -s -c cookies.txt -X POST "http://192.168.1.38:8085/api/v2/auth/login" \
  -d "username=boring737&password=Conan2015"

# 添加种子
curl -s -b cookies.txt -X POST "http://192.168.1.38:8085/api/v2/torrents/add" \
  -F "torrent_file=@/tmp/xxx.torrent" \
  -F "savepath=/volume1/EMBY/downloads/tv"

Technical Analysis

A reusable qBittorrent username and password are embedded directly in the Skill documentation. Anyone able to read the package can recover these credentials without further access or reverse engineering.

The prescribed login request uses unencrypted HTTP. Consequently, the credentials and subsequent authenticated traffic lack transport confidentiality and server authentication. An attacker capable of observing or manipulating traffic on the relevant network could capture the credentials, steal the authenticated session, or alter requests in transit.

The command also writes the authenticated cookie to the relative path cookies.txt. It does not establish restrictive file permissions, use a securely created temporary file, or remove the cookie after use. Depending on the working directory and host permissions, another local user or process could recover and reuse that session.

Attack Path

  1. An attacker obtains read access to the Skill package or a copy of SKILL.md.
  2. The attacker extracts the qBittorrent endpoint, username, and password from lines 94–96 or 111–112.
  3. If the attacker can reach 192.168.1.38:8085, they submit the exposed credentials to the qBittorrent authentication API.
  4. After authentication, the a ...[truncated 1118 chars]
Remediation
View remediation

Remediation Suggestions

  1. Immediately rotate the exposed qBittorrent password and invalidate existing authenticated sessions.
  2. Remove the username and password from SKILL.md, examples, source control history, logs, and distributed package copies.
  3. Retrieve credentials at runtime from a protected secret manager or environment-based secret injection mechanism. Do not print them or place them directly in command-line examples.
  4. Configure qBittorrent behind HTTPS and require certificate validation. Do not send credentials or authenticated requests over plaintext HTTP, even on a private network.
  5. Create a dedicated least-privileged account limited to the operations and storage paths required by this Skill.
  6. Create cookie files securely with restrictive permissions, preferably in a private runtime directory. For example, set umask 077, use a securely generated temporary filename, and delete it immediately after the operation.
  7. Restrict access to the qBittorrent API through host firewall rules or network segmentation so that only authorized clients can reach it.
  8. Avoid embedding user-specific addresses and credentials in reusable Skill packages. Use documented configuration placeholders and validate that required values are supplied securely at runtime.
  9. Review qBittorrent activity and relevant network logs for unauthorized authentication or torrent changes made using the exposed account.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

The skill directs the agent to fetch a torrent file from an external third-party domain and then ingest it into qBittorrent. This is an external transmission and untrusted-content ingestion path: a compromised or malicious source could deliver harmful or deceptive torrent metadata, and the automation reduces opportunities for user review before the file is imported into downstream infrastructure.

Content

Scanner excerpt · SKILL.md (reported line 77)May include surrounding context.

第一步:先尝试curl命令下载

bash
curl -sL -o /tmp/xxx.torrent "https://1lou.one/attach-download-xxxxx.htm"
  • 如果curl成功,直接用种子文件添加到qBittorrent
  • 如果curl失败,尝试其他域名或用浏览器下载

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill documentation contains hardcoded qBittorrent credentials, an internal IP/port, and filesystem paths. Anyone with access to the skill can reuse these secrets to log into the NAS-hosted qBittorrent instance, manipulate downloads, and learn details about the internal environment; embedding real credentials in a skill file is a direct secret exposure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill instructs sending qBittorrent credentials over plain HTTP to an internal service and downloading torrent files into local/NAS paths, but provides no explicit warning or consent boundary to the user. This increases the chance of unsafe deployment, credential interception on the local network, and unreviewed writes to persistent storage, especially because the skill automates both retrieval and import of untrusted torrent metadata.

Content

No source excerpt is available for this finding.