Back to skill

Security audit

s1cli

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Stage1st forum CLI helper, but it documents credential handling and installation patterns that users should review before installing.

Install only if you are comfortable with s1cli and its upstream package source. Prefer a virtual environment, pin or review the exact package/repository version, use the interactive login prompt instead of -p PASS, and avoid letting the agent post, reply, check in, or change config unless you explicitly requested that action.

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:13
Finding

Unpinned Third-Party Package and Source Repository Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:13-17 and SKILL.md:34
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: Medium

Vulnerable Code

bash
pip3 install s1cli

git clone https://github.com/Geoion/s1cli.git && cd s1cli && pip3 install -e .

Additional dependency installation:

bash
pip3 install "httpx[socks]" socksio

Technical Analysis

The Skill directs users to install executable Python packages without specifying reviewed versions or verifying package hashes. The alternative Git installation clones and installs the mutable default branch rather than a reviewed commit.

Consequently, the code executed by these commands can differ from the code that existed when the Skill was audited. If the PyPI packages, maintainer accounts, release process, Git repository, or referenced default branch are compromised, an attacker could distribute modified installation or runtime code.

Because Python package installation may execute build backend logic, compromise does not necessarily require the user to invoke the installed CLI after installation. Malicious behavior could potentially run during package build or installation.

Attack Path

  1. An attacker compromises an upstream package, package-publishing account, source repository, or dependency release process.
  2. The attacker publishes a malicious release or modifies the repository's default branch.
  3. A user follows the Skill and executes the unpinned pip3 install or Git clone-and-install command.
  4. The package manager retrieves the attacker-controlled version.
  5. Malicious build, installation, or runtime code executes with the privileges of the user running the command.
  6. The malicious code can access resources available to that account, potentially including the forum session file and other user-owned data.

Impact Assessment

Successful exploitation could provide ...[truncated 447 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin every Python dependency to a reviewed exact version.
  2. Maintain a lock file containing cryptographic hashes and install with hash verification, such as pip install --require-hashes -r requirements.txt.
  3. Replace installation from a mutable Git branch with a reviewed full commit hash.
  4. Verify package provenance, release signatures, repository ownership, and build artifacts before recommending installation.
  5. Install dependencies inside a dedicated virtual environment rather than the user's global Python environment.
  6. Prefer prebuilt, reproducible artifacts from a controlled registry after reviewing their source and dependency graph.
  7. Document the expected package version and periodically repeat the security review before updating that version.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:42
Finding

Forum Password Exposed Through Command-Line Arguments

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:42 and references/commands.md:7
Vulnerability Type: Plaintext credential exposure through process arguments
Risk Level: Medium

Vulnerable Code

In SKILL.md:

bash
python3 -m s1cli login -u USER -p PASS

The command reference provides the equivalent pattern:

bash
python3 -m s1cli login -u <username> -p <password>

Technical Analysis

The documentation encourages users to pass their forum password directly in a command-line argument. Depending on the operating system and execution environment, command arguments may be exposed through shell history, process-listing utilities, process-monitoring systems, terminal transcripts, audit logs, debugging output, or CI/CD logs.

Quoting the password would only affect shell parsing and would not prevent it from being present in the process argument list. The exposure can also persist after the login command exits if the shell or another system records the command.

Attack Path

  1. A user follows the documented non-interactive login example and places the forum password after -p.
  2. The shell records the command in its history, or a process monitor captures the process argument list while the command is running.
  3. Another local user, administrator, monitoring service, log reader, or later attacker with access to the account's history files retrieves the plaintext password.
  4. The exposed credential is used to authenticate to the forum.
  5. The attacker performs actions available to the compromised forum account, such as reading account information, posting, replying, or modifying account-accessible data.

Impact Assessment

Exploitation can disclose the user's forum username and password and may lead to account takeover. The resulting privileges are limited to those held by the affected forum account unless the password was reused elsewhere. Password reuse could expand ...[truncated 221 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove all examples that pass passwords with the -p command-line option.
  2. Make hidden interactive password entry the documented and preferred authentication method.
  3. If non-interactive authentication is necessary, use a protected secret-input mechanism that does not expose the password in process arguments or logs.
  4. Avoid plaintext credential files. If a credential file is unavoidable, enforce restrictive permissions and document its lifecycle and deletion requirements.
  5. Ensure automation systems use secret stores with log masking and avoid expanding secrets directly into command strings.
  6. Advise users who already used the documented command to remove affected shell-history entries, inspect relevant logs, and rotate the password if exposure is possible.
  7. Warn users not to reuse the forum password on other services.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The activation description is broad enough to trigger on generic forum-related requests such as browsing, posting, searching, or replying whenever the user mentions S1/Stage1st. Overbroad activation can cause the agent to invoke this skill in unintended contexts, leading to unnecessary command execution, credential prompts, or actions against a real user account on an external service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation explicitly recommends passing the password via -p <password> on the command line. Command-line arguments can be exposed through shell history, process listings, terminal logs, and CI/job telemetry, which can leak forum credentials to other local users or logging systems. In this skill context, users are likely to copy-paste the example directly, which increases the chance of accidental credential disclosure.

Content

No source excerpt is available for this finding.