Back to skill

Security audit

Stock AI exposure analysis for investing

Security checks for vulnerabilities and agentic risk

Overview

This skill is a public-company AI exposure research workflow with proportionate public-data fetching and local O*NET lookups, though users should treat its investment outputs cautiously.

Install only if you are comfortable with the agent doing public web research for financial analysis. Use an isolated virtual environment and pinned or locked dependency versions if running the Python helpers, and verify citations and conclusions before relying on any investment-oriented classification.

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 Third-Party Dependencies Permit Unreviewed Package Resolution## Vulnerability Details **File Location**: `requirements.txt:1-2` **Related Installation Instruction**: `SKILL.md:165-168` **Vulnerability Type**: Insecure dependency version constraints **Risk Level**: Medium ### Complete Vulnerable Code Snippet From `requirements.txt`: ```text pandas>=2.0.0 openpyxl>=3.1.0 ``` Related installation instruction from `SKILL.md`: ```markdown Install dependencies with: \```text pip install -r requirements.txt \``` ``` ### Technical Analysis The dependency file specifies minimum versions rather than exact, reviewed versions. Consequently, `pip install -r requirements.txt` can resolve any newer release satisfying the constraints, including versions that did not exist when the skill was audited. No lock file or cryptographic hashes restrict package resolution to verified artifacts. Python package installation may execute package build hooks or other installation-time code with the permissions of the user running `pip`. If an allowed package or a transitive dependency is compromised, a user following the documented installation command could execute attacker-controlled code locally. This is a supply-chain hardening deficiency rather than evidence that the currently named packages are malicious. The audit found no malicious code in the bundled scripts. In addition, `openpyxl` is not imported by either bundled Python script, so its inclusion unnecessarily expands the dependency surface. ### Attack Path 1. An attacker compromises a future release of an allowed package or one of its transitive dependencies. 2. The malicious release remains compatible with `pandas>=2.0.0` or `openpyxl>=3.1.0`. 3. A user follows the installation command in `SKILL.md`. 4. The package resolver selects the compromised release because no exact version or artifact hash is enforced. 5. Malicious installation or runtime code executes under the account invoking `pip`. ### Impact Assessment Successful exploitation could provide arbitrary code exec ...[truncated 452 chars]
Remediation
## Remediation Suggestions 1. Pin every direct dependency to an exact, reviewed version: ```text pandas==<reviewed-version> ``` 2. Generate a fully resolved lock file that also pins transitive dependencies. 3. Record cryptographic hashes for all permitted distributions and install with hash verification, for example: ```bash python -m pip install --require-hashes -r requirements.lock ``` 4. Retrieve dependencies only from a trusted, explicitly configured package index. 5. Review dependency updates before regenerating the lock file, including release provenance and vulnerability advisories. 6. Remove `openpyxl` unless a documented execution path genuinely requires it. 7. Recommend installation in an isolated virtual environment under a non-privileged account. 8. In CI, verify that the lock file is current and reject dependency changes that lack security review.
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
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (15)

Harmful Content Injection

Critical
Category
Prompt Injection
Content
49-9063.00	Musical Instrument Repairers and Tuners	11896	Strike wood, fiberglass, or metal bars of instruments, and use tuned blocks, stroboscopes, or electronic tuners to evaluate tones made by instruments.	Supplemental
49-9063.00	Musical Instrument Repairers and Tuners	11876	Make wood replacement parts, using woodworking machines and hand tools.	Supplemental
49-9063.00	Musical Instrument Repairers and Tuners	11884	Refinish instruments to protect and decorate them, using hand tools, buffing tools, and varnish.	Supplemental
49-9063.00	Musical Instrument Repairers and Tuners	11898	Assemble and install new pipe organs and pianos in buildings.	Supplemental
49-9063.00	Musical Instrument Repairers and Tuners	11885	Deliver pianos to purchasers or to locations of their use.	Supplemental
49-9063.00	Musical Instrument Repairers and Tuners	11882	Wash metal instruments in lacquer-stripping and cyanide solutions to remove lacquer and tarnish.	Supplemental
49-9063.00	Musical Instrument Repairers and Tuners	11887	Refinish and polish piano cabinets or cases to prepare them for sale.	Supplemental
49-9064.00	Watch and Clock Repairers	14977	Clean, rinse, and dry timepiece parts, using solutions and ultrasonic or mechanical watch-cleaning machines.	Core
49-9064.00	Watch and Clock Repairers	14984	Adjust timing regulators, using truing calipers, watch-rate recorders, and tweezers.	Core
49-9064.00	Watch and Clock Repairers	14979	Reassemble timepieces, replacing glass faces and batteries, before returning them to customers.	Core
49-9064.00	Watch and Clock Repairers	14978	Disassemble timepieces and inspect them for defective, worn, misaligned, or rusty parts, using loupes.	Core
Confidence
95% confidence
Finding
This content may contain harmful instructions that could cause physical harm if followed. CRITICAL: Review carefully before use.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
This mismatch again shows the skill claims a sophisticated 8-dimension company-analysis workflow while apparently only operating on local occupation data or user inputs. In a finance and equity-research context, that gap increases risk because the tool may present authoritative classifications and valuation overlays that users interpret as evidence-based when they are not.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
This mismatch again shows the skill claims a sophisticated 8-dimension company-analysis workflow while apparently only operating on local occupation data or user inputs. In a finance and equity-research context, that gap increases risk because the tool may present authoritative classifications and valuation overlays that users interpret as evidence-based when they are not.

Ae5

High
Category
analysis-evasion
Confidence
100% confidence
Finding
Instruction-capable artifact exceeds whole-file semantic analysis limits

Ae5

High
Category
analysis-evasion
Confidence
100% confidence
Finding
Instruction-capable artifact exceeds whole-file semantic analysis limits

Ae5

High
Category
analysis-evasion
Confidence
100% confidence
Finding
Instruction-capable artifact exceeds whole-file semantic analysis limits

Self-Modification

High
Category
Rogue Agent
Content
29-1292.00	Dental Hygienists	18537	Provide clinical services or health education to improve and maintain the oral health of patients or the general public.	Core
29-1292.00	Dental Hygienists	418	Chart conditions of decay and disease for diagnosis and treatment by dentist.	Core
29-1292.00	Dental Hygienists	422	Expose and develop x-ray film.	Core
29-1292.00	Dental Hygienists	23921	Attend continuing education courses to maintain or update skills.	Core
29-1292.00	Dental Hygienists	420	Apply fluorides or other cavity preventing agents to arrest dental decay.	Core
29-1292.00	Dental Hygienists	18538	Maintain dental equipment and sharpen and sterilize dental instruments.	Core
29-1292.00	Dental Hygienists	18539	Maintain patient recall system.	Core
Confidence
85% confidence
Finding
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Self-Modification

High
Category
Rogue Agent
Content
29-2091.00	Orthotists and Prosthetists	9390	Confer with physicians to formulate specifications and prescriptions for orthopedic or prosthetic devices.	Core
29-2091.00	Orthotists and Prosthetists	9395	Show and explain orthopedic and prosthetic appliances to healthcare workers.	Core
29-2091.00	Orthotists and Prosthetists	9393	Train and supervise support staff, such as orthopedic and prosthetic assistants and technicians.	Core
29-2091.00	Orthotists and Prosthetists	9394	Update skills and knowledge by attending conferences and seminars.	Core
29-2091.00	Orthotists and Prosthetists	9396	Research new ways to construct and use orthopedic and prosthetic devices.	Core
29-2091.00	Orthotists and Prosthetists	9397	Publish research findings or present them at conferences and seminars.	Supplemental
29-2092.00	Hearing Aid Specialists	17441	Train clients to use hearing aids or other augmentative communication devices.	Core
Confidence
85% confidence
Finding
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Ae5

High
Category
analysis-evasion
Confidence
100% confidence
Finding
Instruction-capable artifact exceeds whole-file semantic analysis limits

Vague Triggers

Medium
Confidence
95% confidence
Finding
The skill advertises automatic invocation for broad prompts like general company evaluation, AI risk, readiness, or stock analysis, which can cause the agent to activate the skill in situations where the user did not clearly request this specific workflow. That creates scope-creep risk: unnecessary web access, unintended financial-analysis framing, and possible overcollection or irrelevant execution in adjacent tasks.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger language is broad enough to activate on many ordinary company-evaluation requests with only a tenuous connection to AI. That can cause the skill to be invoked in contexts where it lacks the right data or analytical basis, increasing the chance of irrelevant, low-quality, or misleading outputs being substituted for a more appropriate skill or general response.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas>=2.0.0
openpyxl>=3.1.0
Confidence
96% confidence
Finding
The dependency is specified with a lower bound only, which allows future installs to resolve to different versions over time. This creates supply-chain risk and makes builds non-reproducible, potentially pulling in vulnerable or breaking releases without review.

Unverifiable Dependency: pandas has 1 known advisory(ies) (CVE-2020-13091 (** DISPUTED ** pandas through 1.0.3 can unserialize and execute commands from an)), 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
pandas>=2.0.0
openpyxl>=3.1.0
Confidence
96% confidence
Finding
The dependency is not pinned to an exact version, so installations may vary across environments and dates. That weakens reproducibility and increases exposure to accidental adoption of vulnerable upstream releases.

Unverifiable Dependency: openpyxl has 2 known advisory(ies) (CVE-2017-5992 (Improper Restriction of XML External Entity Reference in Openpyxl); CVE-2017-5992 (Openpyxl 2.4.1 resolves external entities by default, which allows remote attack)), 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.