T05 · Unauthorized Access and Privilege Escalation
- Location
distribution-manifest.json:2- Finding
Skill behavior exceeds the capabilities declared in the distribution manifest
- Content
View full analysis
Vulnerability Details
File Location:
distribution-manifest.json:2-6;SKILL.md:40-41, 52, 58-60, 69
Vulnerability Type: Capability-boundary mismatch permitting undeclared network access and persistent writes
Risk Level: MediumVulnerable Code Snippets
distribution-manifest.json:2-6declares only inline delivery and canonical-state reading:json "capabilities": [ "inline-delivery", "canonical-state-read" ], "capability_ceiling": "lite",However,
SKILL.md:40-41instructs the agent to use network connectors and write persistent records:markdown - **Reads**: product facts and capability list (User-provided); win-loss reasons and user-interview notes (User-provided); [competitor-analysis](../../../seo-geo/survey/competitor-analysis/SKILL.md) findings from `memory/research/competitor-analysis/` when present; the stage record in `memory/launch-registry/` so the canvas matches what is actually shippable; competitor public messaging via `scripts/connectors/firecrawl.py` / `scripts/connectors/tavily.py` (keyless, robots pre-flight applies). - **Writes**: the canvas to `memory/launch/positioning-mapper/`; unverifiable or comparative attribute claims marked `[needs source]` to `memory/events/claims.ndjson` via an authorized `operation: propose` request to `registry-events.py` (this skill never adjudicates them); any registry-grade stage/date fact it surfaces goes to `memory/events/launches.ndjson` via an authorized `operation: propose` request to `registry-events.py` only — [launch-registry](../../../protocol/launch-registry/SKILL.md) is the sole writer of its records.SKILL.md:52further directs retrieval of external content:markdown The canvas is a synthesis of the user's own evidence: product facts, win-loss reasons, and interview notes (all User-provided) plus prior [competitor-analysis](../../../seo-geo/survey/competitor-analysis/SKILL.md) output. Competitor public messaging can be pulled keyless with `scripts/ ...[truncated 5375 chars]- Remediation
View remediation
Remediation Suggestions
-
Align the manifest with actual behavior.
- Declare explicit outbound-network capability if competitor retrieval is required.
- Declare narrowly scoped write capabilities for the canvas and event-proposal destinations.
- Raise or change the capability profile if the lite profile does not permit these operations.
-
Apply destination-level restrictions.
- Restrict network requests to approved competitor URLs and connector endpoints.
- Reject arbitrary schemes, local addresses, loopback addresses, link-local addresses, and redirects to unapproved destinations.
- Restrict writes to:
memory/launch/positioning-mapper/- authorized proposal operations for
memory/events/claims.ndjson - authorized proposal operations for
memory/events/launches.ndjson
-
Require explicit authorization.
- Preserve the existing confirmation requirement for canvas persistence.
- Add explicit confirmation before external network retrieval and before each event proposal.
- Ensure
registry-events.pyvalidatesoperation: proposeauthorization independently rather than trusting Skill-generated text.
-
Treat all retrieved and user-provided material as tainted.
- Keep the existing instruction not to follow embedded instructions.
- Validate and normalize fields before persistence.
- Store source provenance and verification status with every proposed claim.
- Enforce length and schema limits to prevent persistent prompt-injection material from entering downstream state.
-
Make dependencies auditable.
- Include the referenced connector and registry scripts in the reviewed package, or pin them to independently audited versions and hashes.
- Document their allowed domains, permissions, authorization model, and data-retention behavior.
-
Fail closed.
- If the runtime cannot verify the required network or write capability, produce the positioning canvas inline without invok ...[truncated 45 chars]
-
