Back to skill

Security audit

unusual-options-activity

Security checks for vulnerabilities and agentic risk

Overview

This skill retrieves options-market data through a disclosed API without trading authority, local data access, or downloaded-code execution.

Use a dedicated SentiSense API key and keep it out of chat output. The provider receives your market queries, and requests consume the disclosed quotas. Optional client identification can be omitted. Separate onboarding and CLI skills are outside this package's 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
  • 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 (1)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · SKILL.md (reported line 131)May include surrounding context.

changes.

bash
curl -s -H "X-SentiSense-API-Key: $SENTISENSE_API_KEY" \
  "https://app.sentisense.ai/api/v1/options/overview"

Rows are pre-ranked by interestScore. Lead with the top few by that score, and show each one's notionalVol beside it: a scored row traded at least $100,000 of premium that session, so a stretched reading near that floor is still thin activity and should be labeled as such. Then re-sort client-side for a specific lens: notionalVol for "most active by premium", abs(ivMove20) for "biggest IV moves", or pcVolPctl1y for the most put-heavy names. Always report the percentile alongside the raw reading, and skip rows where interestScore is omitted (unscored: a building baseline or a session below the liquidity floor).

Static analysis

No suspicious patterns detected.