Back to skill

Security audit

SSOT Check

Security checks for vulnerabilities and agentic risk

Overview

The skill is a legitimate documentation drift checker, but a project-supplied manifest can direct it to read files outside the project and include captured values in reports.

Review `.ssot.yaml` before running this skill, especially on third-party repositories. Do not let it process manifests with unexpected `../` or absolute paths, broad regexes that could capture whole files, or references to secrets/configuration files. Approve sibling repositories explicitly and keep reports from quoting sensitive values.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:91
Finding

Manifest-Controlled Paths Permit Unrestricted Reads Outside the Audited Repository

Content
View full analysis
/dev/null) \ || REF=$(git -C $S for-each-ref --format='%(refname:short)' refs/remotes | head -1) # No REF at all? The sibling has no remote-tracking ref. Report UNVERIFIED. git -C $S show "$REF:index.html" # the value git -C $S log -1 --format=%cs "$REF" # its as-of date ``` Every command above reads local refs and makes no network call. Quote the as-of date next to the value: a remote-tracking ref is a local mirror and can lag the real remote, and a value whose as-of date you can't state is not a fresh value. Report divergence between the sibling's working tree and that ref as a finding. Do **not** fetch, pull, rebase, checkout, or commit in a repo you are only auditing. `git fetch` is not exempt: it writes the sibling's remote-tracking refs, `FETCH_HEAD`, and packfiles, and makes an unsolicited network call on the user's behalf. `git pull` additionally moves the sibling's working tree, which can clobber uncommitted work. If you cannot establish a value read-only — no remote-tracking ref on disk, or the file is absent from it — report the fact as **UNVERIFIED** rather than guessing or fetchi ...[truncated 5325 chars]
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (7)

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · examples/cot-production-discovery/discovery-report.md (reported line 38)May include surrounding context.

md
Live sponsor page (canonical for pricing — `sponsorship/media-kit.md` explicitly
   delegates the media kit to the page): Starter 4 eps at $450/ep, 8 eps at $400/ep,
   Presenting 12 eps at $400/ep ($4,800 total; the Cisco package draft matches).
   `skills/cot-sponsor-package/SKILL.md` still embeds the PREVIOUS tier table —
   old tier names and old per-episode rates (values masked: `<redacted — internal
   historical rates>`). This is the worst kind of copy: a template, so every newly
   generated sponsor package quotes superseded pricing. Similar old-rate tables in

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · examples/cot-production-discovery/discovery-report.md (reported line 64)May include surrounding context.

md
Live sponsor page (canonical for pricing — `sponsorship/media-kit.md` explicitly
   delegates the media kit to the page): Starter 4 eps at $450/ep, 8 eps at $400/ep,
   Presenting 12 eps at $400/ep ($4,800 total; the Cisco package draft matches).
   `skills/cot-sponsor-package/SKILL.md` still embeds the PREVIOUS tier table —
   old tier names and old per-episode rates (values masked: `<redacted — internal
   historical rates>`). This is the worst kind of copy: a template, so every newly
   generated sponsor package quotes superseded pricing. Similar old-rate tables in

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · examples/cot-production-discovery/discovery-report.md (reported line 66)May include surrounding context.

md
Live sponsor page (canonical for pricing — `sponsorship/media-kit.md` explicitly
   delegates the media kit to the page): Starter 4 eps at $450/ep, 8 eps at $400/ep,
   Presenting 12 eps at $400/ep ($4,800 total; the Cisco package draft matches).
   `skills/cot-sponsor-package/SKILL.md` still embeds the PREVIOUS tier table —
   old tier names and old per-episode rates (values masked: `<redacted — internal
   historical rates>`). This is the worst kind of copy: a template, so every newly
   generated sponsor package quotes superseded pricing. Similar old-rate tables in

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · examples/cot-production-discovery/proposed-ssot.yaml (reported line 119)May include surrounding context.

yaml
Live sponsor page (canonical for pricing — `sponsorship/media-kit.md` explicitly
   delegates the media kit to the page): Starter 4 eps at $450/ep, 8 eps at $400/ep,
   Presenting 12 eps at $400/ep ($4,800 total; the Cisco package draft matches).
   `skills/cot-sponsor-package/SKILL.md` still embeds the PREVIOUS tier table —
   old tier names and old per-episode rates (values masked: `<redacted — internal
   historical rates>`). This is the worst kind of copy: a template, so every newly
   generated sponsor package quotes superseded pricing. Similar old-rate tables in

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · examples/cot-production-discovery/proposed-ssot.yaml (reported line 133)May include surrounding context.

yaml
Live sponsor page (canonical for pricing — `sponsorship/media-kit.md` explicitly
   delegates the media kit to the page): Starter 4 eps at $450/ep, 8 eps at $400/ep,
   Presenting 12 eps at $400/ep ($4,800 total; the Cisco package draft matches).
   `skills/cot-sponsor-package/SKILL.md` still embeds the PREVIOUS tier table —
   old tier names and old per-episode rates (values masked: `<redacted — internal
   historical rates>`). This is the worst kind of copy: a template, so every newly
   generated sponsor package quotes superseded pricing. Similar old-rate tables in

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
# Proposed .ssot.yaml for cot-production — output of a real discover-mode run, 2026-06-11.
# This is the draft the skill produced for human review. It was NOT written to the
# audited repo (discover mode never writes the manifest without approval).
#
# Repo context: CLAUDE.md's "Single Source of Truth" section was used as the
# canonical-file oracle. Two surfaces are auto-generated by scripts/podcast-metrics.py

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · examples/cot-production-discovery/proposed-ssot.yaml (reported line 3)May include surrounding context.

yaml
# Proposed .ssot.yaml for cot-production — output of a real discover-mode run, 2026-06-11.
# This is the draft the skill produced for human review. It was NOT written to the
# audited repo (discover mode never writes the manifest without approval).
#
# Repo context: CLAUDE.md's "Single Source of Truth" section was used as the
# canonical-file oracle. Two surfaces are auto-generated by scripts/podcast-metrics.py