Back to skill

Security audit

Outlier Detection & Handling

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward local outlier-detection helper, with the main caveat that its Python dependencies are not pinned.

Install this in an isolated Python environment and consider pinning or locking numpy and scipy before use, especially for regulated or repeatable analysis. Only provide intended dataset files as input, because the script will read the path supplied with --data.

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

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Unpinned and Unhashed Third-Party Dependencies

Content
View full analysis
Remediation
View remediation
scipy== ``` 2. Generate a fully resolved lock file that includes transitive dependencies and SHA-256 hashes. Install with hash enforcement, for example: ```bash python -m pip install --require-hashes -r requirements.lock ``` 3. Generate and review the lock file using a dependency-management tool such as `pip-tools`, while retaining the source requirements separately if needed. 4. Configure an explicit trusted package index and prevent unintended fallback to additional indexes. Use a controlled internal mirror for higher-assurance deployments. 5. Run dependency vulnerability and provenance checks in CI, and review dependency updates before regenerating the lock file. 6. Install dependencies inside an isolated, least-privilege virtual environment or container. Do not perform installation as root or from an account with access to unrelated secrets. 7. Record the locked dependency set with each release so that analysis behavior and resulting statistical outputs remain reproducible. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The dependency specification includes numpy without a version pin, which makes builds non-reproducible and can cause the environment to resolve to a vulnerable or incompatible release over time. In a security context, unpinned packages increase supply-chain risk because the exact code installed is uncontrolled and cannot be reliably audited against known advisories.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
numpy
scipy

Unverifiable Dependency: numpy has 16 known advisory(ies) (CVE-2014-1859 (Numpy arbitrary file write via symlink attack); CVE-2021-41495 (NumPy NULL Pointer Dereference); CVE-2021-33430 (NumPy Buffer Overflow (Disputed)) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
90% confidence
Finding

numpy has multiple historical advisories, and because no version is pinned, it is impossible to determine whether the installed release is affected. The risk is amplified by the manifest's openness: an environment could resolve to a vulnerable version depending on installer behavior, mirrors, or surrounding constraints.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The dependency specification includes scipy without a version pin, so installations may pull different releases at different times, including outdated or vulnerable ones. This weakens reproducibility and makes it difficult to prove that deployed environments are not affected by public dependency advisories.

Content

Scanner excerpt · requirements.txt (reported line 2)May include surrounding context.

text
numpy
scipy

Unverifiable Dependency: scipy has 4 known advisory(ies) (CVE-2013-4251 (SciPy creates insecure temporary directories); CVE-2013-4251 (The scipy.weave component in SciPy before 0.12.1 creates insecure temporary dire); CVE-2023-25399 (A refcounting issue which leads to potential memory leak was discovered in scipy) +1 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
90% confidence
Finding

scipy has known advisories, and the absence of a version pin means the manifest does not establish whether a safe release will be installed. That creates unverifiable exposure and undermines secure, repeatable builds for the skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.