Back to skill

Security audit

Quant Simulation Toolkit

Security checks for vulnerabilities and agentic risk

Overview

This is a local quant-simulation toolkit; it has finance-use caveats but no evidence of hidden execution, credential access, persistence, or live trading behavior.

Install this as an educational/local simulation skill, not as a live trading system. Pin or review numpy/scipy versions if reproducibility matters, and do not rely on the model outputs for real-money decisions without independent validation, safeguards, and domain review.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (17)

Hidden Instructions

High
Category
Prompt Injection
Content
This is the filtering problem, and the tool is Sequential Monte Carlo  particle filters.
The State-Space Model
Define:
Hidden state x_t​: the "true" probability of the event (unobserved)
Observation y_t: market prices, poll results, vote counts, news signals
The state evolves via a logit random walk (keeps probabilities bounded):
Observations are noisy readings of the true state:
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
This is the filtering problem, and the tool is Sequential Monte Carlo  particle filters.
The State-Space Model
Define:
Hidden state x_t​: the "true" probability of the event (unobserved)
Observation y_t: market prices, poll results, vote counts, news signals
The state evolves via a logit random walk (keeps probabilities bounded):
Observations are noisy readings of the true state:
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
This is the filtering problem, and the tool is Sequential Monte Carlo  particle filters.
The State-Space Model
Define:
Hidden state x_t​: the "true" probability of the event (unobserved)
Observation y_t: market prices, poll results, vote counts, news signals
The state evolves via a logit random walk (keeps probabilities bounded):
Observations are noisy readings of the true state:
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
This is the filtering problem, and the tool is Sequential Monte Carlo  particle filters.
The State-Space Model
Define:
Hidden state x_t​: the "true" probability of the event (unobserved)
Observation y_t: market prices, poll results, vote counts, news signals
The state evolves via a logit random walk (keeps probabilities bounded):
Observations are noisy readings of the true state:
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
This is the filtering problem, and the tool is Sequential Monte Carlo  particle filters.
The State-Space Model
Define:
Hidden state x_t​: the "true" probability of the event (unobserved)
Observation y_t: market prices, poll results, vote counts, news signals
The state evolves via a logit random walk (keeps probabilities bounded):
Observations are noisy readings of the true state:
Confidence
60% confidence
Finding
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
This appears to be the same underlying issue expressed with slightly different wording: the skill presents itself as a comprehensive quant toolkit while reportedly only implementing a narrower Black-Scholes/Monte Carlo pricer. Misrepresentation of functionality can mislead users into relying on absent risk, dependency, or modeling features, especially in a finance-oriented context where analytical completeness matters.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
This appears to be the same underlying issue expressed with slightly different wording: the skill presents itself as a comprehensive quant toolkit while reportedly only implementing a narrower Black-Scholes/Monte Carlo pricer. Misrepresentation of functionality can mislead users into relying on absent risk, dependency, or modeling features, especially in a finance-oriented context where analytical completeness matters.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

Missing User Warnings

Medium
Confidence
92% confidence
Finding
For markdown files, missing-warning findings apply when descriptions omit warnings about behaviors affecting user data, privacy, or system integrity. This section describes operational trading infrastructure and execution workflows, but the only disclaimer earlier is 'Not Financial Advice & Do Your Own Research,' which does not warn about automated execution risks, loss of funds, or live-system consequences.

Intent-Code Divergence

Medium
Confidence
89% confidence
Finding
The top-level documentation says the market maker adjusts price using Kyle lambda and 'estimates lambda empirically via OLS,' implying adaptive estimation as part of the market-maker behavior. In the actual code, MarketMaker.update uses the fixed constructor parameter kyle_lambda directly (L212-L245), while OLS estimation occurs only afterward in a separate reporting helper estimate_kyle_lambda (L255-L287, L386), so the narrative overstates what the runtime behavior does.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The printed 'KEY INSIGHTS' state that market maker spread income offsets adverse selection losses and that estimated Kyle lambda validates the model. In the implementation, the market maker only updates a single mid-price via linear impact and computes PnL from inventory settlement (L244-L247, L380-L382); there is no bid/ask spread, spread revenue, or explicit spread-based execution logic anywhere in the code.

Vague Triggers

Low
Confidence
83% confidence
Finding
This is a markdown file, so vague-trigger review applies. The section presents a generalized capability description for market data ingestion, probability engines, and execution-oriented infrastructure, but does not bound when such guidance should or should not be used, making the scope broad and potentially reusable in many ordinary contexts.

Intent-Code Divergence

Low
Confidence
95% confidence
Finding
The code explicitly allows stages 1-6 to be skipped when sibling modules are unavailable, and Stage 7 marks skipped stages in the summary table. However, the final printed message states 'All 6 quantitative simulation tools executed,' which contradicts the documented graceful-degradation behavior when one or more modules are missing.

Unpinned Dependencies

Low
Category
Supply Chain
Content
numpy>=1.24
scipy>=1.10
Confidence
93% confidence
Finding
The dependency is specified with only a lower bound, so installs can resolve to different versions over time. This weakens reproducibility and can allow vulnerable or breaking upstream releases to be pulled in without review, especially in automated builds.

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
40% confidence
Finding
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Unpinned Dependencies

Low
Category
Supply Chain
Content
numpy>=1.24
scipy>=1.10
Confidence
93% confidence
Finding
The scipy requirement is not pinned to an exact version, which means future installations may fetch unexpected releases. That increases supply-chain and stability risk because security posture depends on whatever version happens to satisfy the lower bound at install time.

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
40% confidence
Finding
Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Static analysis

No suspicious patterns detected.