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## 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 ``` ``` ### 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
## 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## 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 ``` ``` ### 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
## 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
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.

Hidden Instructions

High
Category
Prompt Injection
Content
---
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"
Confidence
60% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Hidden Instructions

High
Category
Prompt Injection
Content
---
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"
Confidence
60% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Missing User Warnings

High
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.

Missing User Warnings

High
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.

Vague Triggers

Medium
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.

Vague Triggers

Medium
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.

Vague Triggers

Medium
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.

Session Persistence

Medium
Category
Rogue Agent
Content
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"
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.

Missing User Warnings

Medium
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.

Scope Creep

Low
Category
Excessive Agency
Content
**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
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.

Scope Creep

Low
Category
Excessive Agency
Content
**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
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.

Missing User Warnings

Low
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.

Static analysis

No suspicious patterns detected.