Back to skill

Security audit

HK IPO Calendar Monitor

Security checks for vulnerabilities and agentic risk

Overview

The published skill looks like a read-only Hong Kong IPO calendar helper, but the bundled runtime also includes persistent profile, watchlist, scoring, review, and suggestion-application features that are not disclosed in the skill description.

Install this only if you intend to trust the full hkipo-next decision-support runtime, not just a read-only calendar monitor. Consider running it in an isolated environment, avoid exposing unnecessary HKIPO_* secrets, and prefer a pinned lockfile before routine use.

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

Note
Location
runtime/hkipo-next/pyproject.toml:10
Finding

Unpinned Runtime Dependencies Permit Unreviewed Supply-Chain Changes

Content
View full analysis
=4.14.3", "httpx>=0.28.1", "lxml>=6.0.4", "opencc-python-reimplemented>=0.1.7", "pydantic>=2.13.0", "requests>=2.33.1", ] ``` `SKILL.md:17` and `SKILL.md:32`: ```bash uv run --directory runtime/hkipo-next hkipo-next ... ``` ```bash uv run --directory runtime/hkipo-next hkipo-next calendar --window deadline --days 7 --format json ``` ### Technical Analysis The runtime dependencies specify only lower version bounds using `>=`. The audited project does not include a dependency lockfile, integrity hashes, or upper version constraints. The documented `uv run` workflow may consequently resolve and install package versions that were released after the Skill itself was reviewed. This creates a supply-chain trust gap: the effective code executed by the Skill can change without any corresponding modification to the audited project. Although no dependency is confirmed to be malicious, a compromised maintainer account, malicious package release, or compromised package-distribution infrastructure could introduce attacker-controlled code into a future dependency version. This issue is classified as `T08: Insecure Dependencies`. It is not evidence that the current dependencies are malicious; the risk arises from non-reproducible resolution of future, unreviewed versions. ### Attack Path 1. An attacker compromises the publishing account or release process of one of the allowed dependencies, or compromises its downstream dependency chain. 2. The attacker publishes a version newer than the minimum version accepted by the relevant `>=` constraint. 3. A user invokes the documented `uv run --direc ...[truncated 1732 chars]
Remediation
View remediation
=` constraints. 4. Use package hash verification where supported to ensure downloaded artifacts match approved distributions. 5. Resolve and install dependencies during a controlled build or deployment stage rather than during normal Skill execution. 6. Review both direct and transitive dependency updates before regenerating the lockfile. 7. Add automated dependency scanning and provenance checks to the release process. 8. Run the Skill in a restricted environment with minimal filesystem access, limited environment variables, and outbound network access limited to required IPO-data hosts. ]]>
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (153)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is presented as a narrow, read-only IPO calendar monitor, but the findings indicate the underlying runtime exposes much broader functionality: profile/watchlist management, parameter/version storage, review workflows, scoring/decision support, SQLite persistence, local config reads, and multiple external data integrations. This is dangerous because users and orchestration layers may grant trust and permissions based on the benign description while the packaged runtime can perform materially different actions, including persistence and broader data access.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.