Back to skill

Security audit

Position Tracker

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent position-tracking tool, but its broad production use and optional auto-close capability can affect real financial, cloud, or subscription resources without strong built-in guardrails.

Install only if you are prepared to review and constrain the adapter you connect it to. Keep auto_close disabled unless you have tested against non-production data and added explicit confirmation, allowlists, fresh re-checks, logging, and rollback expectations. Prefer copying the bundled position_tracker.py or using a pinned, hash-verified package in a non-privileged virtual environment.

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 (2)

T08 · Insecure Dependencies

Warning
Location
README.md:74
Finding

Unverified and Unpinned Package Installation in README

Content
View full analysis

Vulnerability Details

File Location: README.md:74-78
Vulnerability Type: Unverified third-party dependency installation
Risk Level: Medium

bash
### 1. Install
```bash
pip install position-tracker
# OR copy position_tracker.py to your project
text

### Technical Analysis

The installation command resolves the mutable `position-tracker` package from the Python package index configured on the user's system. The documentation does not specify an exact version, cryptographic hash, verified publisher, or authoritative package repository.

Python package installation can execute package-controlled build or installation logic. Consequently, compromise of the package distribution channel, dependency substitution, or an unexpected future package release could introduce arbitrary executable code. This network-based installation is not required for the bundled implementation because the same instructions explicitly permit users to copy the included `position_tracker.py` file.

### Attack Path

1. A user follows the README's primary installation instructions.
2. The user executes `pip install position-tracker`.
3. Pip contacts the user's configured package index and resolves the current package artifact without a version or hash constraint.
4. If that artifact is malicious or compromised, pip processes its attacker-controlled build or installation metadata.
5. Malicious code executes with the privileges of the user or environment running pip.

### Impact Assessment

Successful exploitation could execute arbitrary code under the installing user's account. Depending on that account's privileges and accessible environment, an attacker could read or modify user files, access environment variables and locally available credentials, alter the Python environment, or install additional malicious components.

The project itself does not demonstrate that the referenced package is malicious. The risk arises from the un
...[truncated 49 chars]
Remediation
View remediation

Remediation Suggestions

  • Prefer installation from the bundled, audited position_tracker.py implementation.
  • Identify and link the authoritative package repository and package-index publisher.
  • Pin an exact reviewed package version rather than installing the latest mutable release.
  • Publish and verify cryptographic hashes, for example through a locked requirements file used with pip install --require-hashes.
  • Recommend installation in an isolated virtual environment with no administrative privileges.
  • Establish a release process that signs artifacts and documents how users can verify provenance.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:88
Finding

Unverified and Unpinned Package Installation in Skill Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:88-92
Vulnerability Type: Unverified third-party dependency installation
Risk Level: Medium

bash
### 1. Install
```bash
pip install position-tracker
# OR copy position_tracker.py to your project
text

### Technical Analysis

The Skill instructions direct users to install the unpinned `position-tracker` package from their configured Python package index. They provide no version constraint, integrity hash, verified source repository, or provenance information connecting the remote package to the bundled source.

Package installation is a code-execution boundary because Python packages may run build or installation logic. The effective installed payload can also change after the Skill has been audited. This exceeds the minimum network and dependency privileges necessary for the declared position-tracking functionality because the project already includes a standalone implementation that can be reviewed and copied locally.

### Attack Path

1. The Skill is loaded and its Quick Start instructions are followed.
2. The user runs `pip install position-tracker`.
3. Pip retrieves the currently resolved package artifact from an external package index.
4. A substituted, compromised, or unexpectedly modified artifact supplies attacker-controlled installation logic.
5. That logic executes in the user's Python installation context.

### Impact Assessment

Exploitation could provide arbitrary code execution with the privileges granted to pip. The accessible scope may include the user's files, environment variables, Python environment, application configuration, and credentials available to the invoking process. Administrative execution would substantially increase the potential scope.

No evidence establishes that the current remote package is malicious. This finding concerns the lack of immutable versioning and provenance verification.
Remediation
View remediation

Remediation Suggestions

  • Make use of the bundled position_tracker.py the default installation method.
  • If a remote package is retained, specify its authoritative repository and verified publisher.
  • Pin the dependency to an exact audited version.
  • Distribute trusted hashes and require integrity validation during installation.
  • Recommend a non-privileged virtual environment and explicitly warn users not to run pip as an administrator.
  • Add release signing and reproducible-build guidance so users can verify that the package-index artifact corresponds to the reviewed source.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (13)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation promotes 'self-healing,' 'automatic reconciliation,' and optional orphan cleanup/auto-close against external systems without a prominent warning that these actions can close live positions or delete/cancel real resources. Because the tool is intended for exchanges, brokers, cloud resources, and subscriptions, an operator could enable automation without understanding that the skill may perform destructive state changes in production.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · README.md (reported line 1)May include surrounding context.

md
---
name: "Position Tracker Self-Healing State Management"
description: "Keep track of positions across any exchange, broker, or external system. Detect orphans, prevent leaks. Self-healing state reconciliation for any stateful bot."
author: "@TheShadowRose"

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

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

md
---
name: "Position Tracker Self-Healing State Management"
description: "Keep track of positions across any exchange, broker, or external system. Detect orphans, prevent leaks. Self-healing state reconciliation for any stateful bot."
author: "@TheShadowRose"

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The quick-start example immediately calls cleanup_orphans() and reconcile() against external systems without first emphasizing that these flows may modify or close real resources depending on configuration and adapter behavior. Quick-start snippets are frequently copied verbatim, so presenting state-changing operations as the default path materially raises the likelihood of unintended destructive actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The API reference exposes cleanup_orphans(orphans, auto_close=False) and documents automatic closure of external positions/resources, but the surrounding documentation does not prominently warn that enabling this can directly close trades, cancel subscriptions, terminate instances, or otherwise destroy live external state. In a generalized skill advertised for many domains, this omission materially increases the chance of accidental destructive use.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README repeatedly markets the skill as applicable to 'ANY exchange, broker, or external system' and 'any domain' without defining operational boundaries, safe targets, or exclusion criteria. In an agent/skill ecosystem, this broad framing increases the chance of unsafe deployment against sensitive production systems where the same reconciliation and cleanup logic could affect financial accounts, cloud resources, or other external assets.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The front-matter description uses very broad activation terms such as "any exchange, broker, or external system" and "any stateful bot," which makes the skill eligible for many unrelated or overly sensitive contexts. In agent ecosystems, ambiguous invocation scope can cause the skill to be selected when the user did not intend state reconciliation or cleanup logic, increasing the chance of unintended external actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The repeated claim that the tracker applies to "any" domain expands the perceived authority of the skill far beyond a constrained trading or state-sync use case. This increases the risk that an orchestrator or user applies destructive reconciliation patterns to cloud, subscriptions, databases, or other systems where cleanup may have costly side effects.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · position_tracker.py (reported line 188)May include surrounding context.

python
self.positions = {}
    
    def save(self):
        """Persist state to disk (atomic write with fsync)."""
        data = {pos_id: pos.to_dict() for pos_id, pos in self.positions.items()}
        tmp = self.state_file + ".tmp"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The orphan cleanup path can invoke api.close_position(position_id), which performs a destructive remote action based solely on reconciliation logic and a boolean flag, without any confirmation, authorization hook, or safety policy. If reconciliation is wrong, external data is stale, or the adapter is pointed at production, legitimate positions could be closed automatically and cause financial or operational loss.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

Scanner excerpt · README.md (reported line 495)May include surrounding context.

md
**USE AT YOUR OWN RISK.**

- The author(s) are NOT liable for any damages, losses, or consequences arising from 
  the use or misuse of this software — including but not limited to financial loss, 
  data loss, security breaches, business interruption, or any indirect/consequential damages.
- This software does NOT constitute financial, legal, trading, or professional advice.
- Users are solely responsible for evaluating whether this software is suitable for

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

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

md
**USE AT YOUR OWN RISK.**

- The author(s) are NOT liable for any damages, losses, or consequences arising from 
  the use or misuse of this software — including but not limited to financial loss, 
  data loss, security breaches, business interruption, or any indirect/consequential damages.
- This software does NOT constitute financial, legal, trading, or professional advice.
- Users are solely responsible for evaluating whether this software is suitable for

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

This code persistently writes position state to a JSON file on disk, which is a file-modifying operation covered by the warning requirement for code files. While failures are logged and the initializer documents the state directory, there is no clear user-facing warning that normal use will create and update on-disk state files.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.