Back to skill

Security audit

Sample Size & Power Calculator (Advanced)

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to be a local statistical calculator, but its documentation overstates supported methods and gives inconsistent data-flow and security claims that users should review before relying on it.

Install only if you are comfortable reviewing the formulas and using it as a lightweight local calculator. Do not rely on it for clustered designs, multiple comparisons, regression, validated power analysis, or regulated study design without independent statistical review. Install dependencies in an isolated environment and consider pinning numpy and scipy first.

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
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Allow Uncontrolled Package Resolution

Content
View full analysis
Remediation
View remediation
scipy== ``` 2. Generate a locked dependency file that includes all transitive dependencies. 3. Record cryptographic hashes and install with hash enforcement: ```bash python -m pip install --require-hashes -r requirements.lock ``` 4. Configure installation to use an explicitly trusted package index rather than inheriting arbitrary user index settings. 5. Scan locked dependencies for known vulnerabilities and review updates before changing pinned versions. 6. Perform installation in an isolated, least-privileged virtual environment or container. ]]>

T09 · Insecure Skill Coding Practices

Note
Location
scripts/main.py:105
Finding

Missing Argument and Numeric Range Validation Causes Predictable Process Failures

Content
View full analysis
Remediation
View remediation
0` and `hazard_ratio != 1` - `effect > 0` - `ratio > 0` - `k >= 2` - `0 <= dropout < 1` 4. Reject invalid input through `parser.error(...)` before invoking calculation methods. 5. Either implement the required `noninf` CLI parameters and assign `result`, or terminate that branch cleanly before common result handling. 6. Add guarded exception handling that returns a concise, sanitized error without an internal traceback during normal CLI use. 7. Add automated tests for omitted arguments, zero denominators, NaN, infinity, invalid probabilities, invalid hazard ratios, dropout boundaries, and every supported test selector. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill advertises advanced sample size and power capabilities, including clustered designs and multiple comparisons, but the documented interface does not substantiate those features. In a scientific or academic setting, this can cause users to rely on invalid methodology and produce underpowered, biased, or noncompliant study designs, which is a real integrity and safety risk even without classic code-execution abuse.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest description overstates the scope relative to the documented executable interface, which can mislead orchestrators or users into invoking this skill for unsuitable tasks. In security-sensitive automation, capability inflation increases the chance of unsafe delegation, incorrect outputs, and accidental exposure of data to tools or workflows that are not appropriate.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The activation guidance is broad enough to match generic academic-writing requests, not just narrow sample-size and power tasks. Over-broad routing can cause the agent to select this skill in inappropriate contexts, increasing the risk of irrelevant script execution, incorrect advice, or mishandling of user inputs outside the skill's validated domain.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation claims advanced functionality and mentions external API behavior that is not reflected in the exposed usage surface. This creates a trust-boundary problem: users may provide sensitive research inputs or depend on behavior that does not exist, leading to data handling surprises, misuse, or scientifically invalid outputs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The risk table discloses possible external API calls and file read/write behavior, but the usage and workflow sections do not clearly warn users when data may leave the environment or when files may be modified. This lack of upfront transparency can lead to unintended data disclosure or workspace changes, especially when users assume the tool is purely local and analytical.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest explicitly includes clustered designs, which typically require inputs and formulas for ICC, cluster size, or design effects. The code contains no clustered-trial methods or parameters and only implements standard individual-level designs, creating a semantic mismatch between the advertised scope and actual functionality.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest describes advanced calculations including multiple comparisons, but the exposed CLI only supports t-tests, chi-square, survival, ANOVA, and non-inferiority. No function or interface implements multiple-comparison corrections or related sample size/power methods, so the stated capability does not match the actual code behavior.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The dependency is specified without a version pin, so builds are not reproducible and may resolve to different releases over time, including vulnerable or breaking versions. In a computational skill that relies on scientific libraries, this increases supply-chain risk and makes it impossible to verify whether a safe version is installed.

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
85% confidence
Finding

NumPy has known advisories, and because no version is pinned, the manifest does not allow verification that the deployed version is unaffected. The risk is contextual here: this skill is a statistical calculator, so exposure is mainly through dependency installation and runtime parsing behavior rather than obviously dangerous system interactions, but unverifiable vulnerable versions still present supply-chain risk.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The scipy dependency is also unpinned, allowing package resolution to drift across environments and time. That can silently introduce vulnerable releases or behavior changes, which is a supply-chain weakness even if no exploit is directly present in this file.

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
84% confidence
Finding

SciPy has known advisories, and the unpinned requirement means consumers may install an affected version without visibility. While the skill context does not suggest elevated danger beyond normal scientific-computing usage, unverifiable dependency versions remain a real supply-chain and reliability concern.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The module docstring presents the tool as a 'Sample Size & Power Calculator,' but the class methods compute required sample sizes from a target power rather than calculating statistical power from study parameters. The only 'power_curve' helper repeatedly calls sample-size functions and does not compute power values, so the documentation overstates what the code does.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.